Interrogazione dopo SELECT

Migliorare le prestazioni delle query in SQL Server

Dean Smith

Founder, Atamai Analytics

Ordine di esecuzione dopo SELECT

1.  FROM

2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. HAVING
7. SELECT
8. DISTINCT
9. ORDER BY
10. TOP
Migliorare le prestazioni delle query in SQL Server

Non sempre “tutto” è meglio

SELECT *
FROM PlayerStats;

SELECT * è ottimo per l’esplorazione ma può peggiorare le prestazioni

PlayerName Team Position ... ...
Alex Abrines OKC SG ... ...
Quincy Acy BRK PF ... ...
Steven Adams OKC C ... ...
Bam Adebayo MIA C ... ...
... ... ... ... ...
Migliorare le prestazioni delle query in SQL Server

Solo il necessario è meglio

SELECT PlayerName, 
        Team, 
        TotalPoints
FROM PlayerStats;

Seleziona solo le colonne necessarie

PlayerName Team TotalPoints
Alex Abrines OKC 353
Quincy Acy BRK 411
Steven Adams OKC 1056
Bam Adebayo MIA 477
... ... ...
Migliorare le prestazioni delle query in SQL Server

Tutto in un JOIN

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

SELECT * nei join duplica le colonne di join

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 ...
... ... ... ... ...
Migliorare le prestazioni delle query in SQL Server

Tutto ciò che serve in un JOIN

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

Indica esplicitamente le colonne da restituire e da quali tabelle

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
... ... ... ...
Migliorare le prestazioni delle query in SQL Server

Righe in cima (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
Migliorare le prestazioni delle query in SQL Server

Percentuale con 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
Migliorare le prestazioni delle query in SQL Server

Non c’è un inizio o una fine

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
Migliorare le prestazioni delle query in SQL Server

Altri limitatori di righe

Limitatore di righe Clausola di ordinamento Database
TOP ORDER BY Microsoft SQL Server
ROWNUM ORDER BY Oracle
LIMIT ORDER BY PostgreSQL
Migliorare le prestazioni delle query in SQL Server

Dove usare ORDER BY

Usa ORDER BY in una query:

  • Per esplorare i dati
  • Quando i risultati finali devono avere un ordine preciso
Migliorare le prestazioni delle query in SQL Server

Passons à la pratique !

Migliorare le prestazioni delle query in SQL Server

Preparing Video For Download...