Interroger après SELECT

Améliorer la performance des requêtes dans SQL Server

Dean Smith

Founder, Atamai Analytics

Ordre de traitement après SELECT

1.  FROM

2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. HAVING
7. SELECT
8. DISTINCT
9. ORDER BY
10. TOP
Améliorer la performance des requêtes dans SQL Server

Tout n'est pas toujours idéal

SELECT *
FROM PlayerStats;

SELECT * est pratique pour explorer les données, mais peut nuire au rendement

PlayerName Team Position ... ...
Alex Abrines OKC SG ... ...
Quincy Acy BRK PF ... ...
Steven Adams OKC C ... ...
Bam Adebayo MIA C ... ...
... ... ... ... ...
Améliorer la performance des requêtes dans SQL Server

Le nécessaire, c'est mieux

SELECT PlayerName, 
        Team, 
        TotalPoints
FROM PlayerStats;

Sélectionnez uniquement les colonnes nécessaires

PlayerName Team TotalPoints
Alex Abrines OKC 353
Quincy Acy BRK 411
Steven Adams OKC 1056
Bam Adebayo MIA 477
... ... ...
Améliorer la performance des requêtes dans SQL Server

Tout dans une JOIN

SELECT * 
FROM Players p
  INNER JOIN PlayerStats ps
  ON ps.PlayerName = p.PlayerName;

SELECT * dans des jointures duplique les colonnes de jointure

PlayerName Age PlayerName Team ...
Alex Abrines 24 Alex Abrines OKC ...
Quincy Acy 27 Quincy Acy BRK ...
Steven Adams 24 Steven Adams OKC ...
Bam Adebayo 20 Bam Adebayo MIA ...
... ... ... ... ...
Améliorer la performance des requêtes dans SQL Server

L'essentiel dans une JOIN

SELECT p.PlayerName, 
       ps.Team, 
       p.Country, 
       ps.Position
FROM Players p
  INNER JOIN PlayerStats ps
  ON ps.PlayerName = p.PlayerName;

Indiquez explicitement les colonnes à retourner et de quelles tables elles proviennent

PlayerName Country Team Position
Alex Abrines Spain OKC SG
Quincy Acy USA BRK PF
Steven Adams New Zealand OKC C
Bam Adebayo USA MIA C
... ... ... ...
Améliorer la performance des requêtes dans SQL Server

Lignes en TOP

SELECT TOP 5 PlayerName, 
        Team, 
        TotalPoints
FROM PlayerStats;
PlayerName Team TotalPoints
Alex Abrines OKC 353
Quincy Acy BRK 411
Steven Adams OKC 1056
Bam Adebayo MIA 477
Arron Afflalo ORL 179
Améliorer la performance des requêtes dans SQL Server

Pourcentage en TOP

SELECT TOP 1 PERCENT PlayerName, 
        Team, 
        TotalPoints
FROM PlayerStats;
PlayerName Team TotalPoints
Alex Abrines OKC 353
Quincy Acy BRK 411
Steven Adams OKC 1056
Bam Adebayo MIA 477
Arron Afflalo ORL 179
Cole Aldrich MIN 12
LaMarcus Aldridge SAS 1735
Améliorer la performance des requêtes dans SQL Server

Sans tri, pas de haut ni de bas

SELECT TOP 5 PlayerName, 
        Team, 
        TotalPoints
FROM PlayerStats
ORDER BY TotalPoints DESC
PlayerName Team TotalPoints
LeBron James CLE 2251
James Harden HOU 2191
Anthony Davis NOP 2110
Russell Westbrook OKC 2028
Giannis Antetokounmpo MIL 2014
Améliorer la performance des requêtes dans SQL Server

Autres limiteurs de lignes

Limiteur de lignes Clause de tri Base de données
TOP ORDER BY Microsoft SQL Server
ROWNUM ORDER BY Oracle
LIMIT ORDER BY PostgreSQL
Améliorer la performance des requêtes dans SQL Server

Où utiliser ORDER BY

Utilisez ORDER BY dans une requête :

  • Pour interroger les données
  • Lorsque vous avez une bonne raison de trier le résultat final
Améliorer la performance des requêtes dans SQL Server

Passons à la pratique !

Améliorer la performance des requêtes dans SQL Server

Preparing Video For Download...