Zapytania po SELECT

Poprawa wydajności zapytań w SQL Server

Dean Smith

Founder, Atamai Analytics

Kolejność przetwarzania po SELECT

1.  FROM

2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. HAVING
7. SELECT
8. DISTINCT
9. ORDER BY
10. TOP
Poprawa wydajności zapytań w SQL Server

Wszystko nie zawsze jest dobre

SELECT *
FROM PlayerStats;

SELECT * jest przydatny do analizy danych, lecz może negatywnie wpłynąć na wydajność

PlayerName Team Position ... ...
Alex Abrines OKC SG ... ...
Quincy Acy BRK PF ... ...
Steven Adams OKC C ... ...
Bam Adebayo MIA C ... ...
... ... ... ... ...
Poprawa wydajności zapytań w SQL Server

Precyzja jest lepsza

SELECT PlayerName, 
        Team, 
        TotalPoints
FROM PlayerStats;

Wybieraj tylko potrzebne kolumny

PlayerName Team TotalPoints
Alex Abrines OKC 353
Quincy Acy BRK 411
Steven Adams OKC 1056
Bam Adebayo MIA 477
... ... ...
Poprawa wydajności zapytań w SQL Server

Wszystko w JOIN

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

SELECT * w złączeniach zwraca duplikaty kolumn łączących

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 ...
... ... ... ... ...
Poprawa wydajności zapytań w SQL Server

Wszystko, czego potrzebujesz w JOIN

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

Jawnie określ zwracane kolumny i tabele źródłowe

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
... ... ... ...
Poprawa wydajności zapytań w SQL Server

Wiersze od góry

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
Poprawa wydajności zapytań w SQL Server

Procent od góry

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
Poprawa wydajności zapytań w SQL Server

Nie ma góry ani dołu

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
Poprawa wydajności zapytań w SQL Server

Inne ograniczniki wierszy

Ogranicznik wierszy Klauzula sortowania Baza danych
TOP ORDER BY Microsoft SQL Server
ROWNUM ORDER BY Oracle
LIMIT ORDER BY PostgreSQL
Poprawa wydajności zapytań w SQL Server

Kiedy stosować ORDER BY

Użyj ORDER BY w zapytaniu:

  • Do analizy danych
  • Gdy wyniki końcowe mają być posortowane z określonego powodu
Poprawa wydajności zapytań w SQL Server

Czas na ćwiczenia!

Poprawa wydajności zapytań w SQL Server

Preparing Video For Download...