SELECT 이후의 처리 순서

SQL Server에서 쿼리 성능 향상하기

Dean Smith

Founder, Atamai Analytics

SELECT 이후 처리 순서

1.  FROM

2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. HAVING
7. SELECT
8. DISTINCT
9. ORDER BY
10. TOP
SQL Server에서 쿼리 성능 향상하기

ALL이 항상 좋지는 않음

SELECT *
FROM PlayerStats;

SELECT *는 데이터 탐색에는 유용하지만 성능에는 불리할 수 있습니다

PlayerName Team Position ... ...
Alex Abrines OKC SG ... ...
Quincy Acy BRK PF ... ...
Steven Adams OKC C ... ...
Bam Adebayo MIA C ... ...
... ... ... ... ...
SQL Server에서 쿼리 성능 향상하기

필요한 것만이 더 좋다

SELECT PlayerName, 
        Team, 
        TotalPoints
FROM PlayerStats;

필요한 열만 선택하십시오

PlayerName Team TotalPoints
Alex Abrines OKC 353
Quincy Acy BRK 411
Steven Adams OKC 1056
Bam Adebayo MIA 477
... ... ...
SQL Server에서 쿼리 성능 향상하기

JOIN에서의 ALL

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

조인에서 SELECT *는 조인 열을 중복 반환합니다

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 ...
... ... ... ... ...
SQL Server에서 쿼리 성능 향상하기

JOIN에 필요한 전부

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

반환할 열과 해당 테이블을 명시합니다

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
... ... ... ...
SQL Server에서 쿼리 성능 향상하기

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
SQL Server에서 쿼리 성능 향상하기

백분율 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
SQL Server에서 쿼리 성능 향상하기

정렬 없이는 상·하위가 없음

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
SQL Server에서 쿼리 성능 향상하기

다른 행 제한자

행 제한자 정렬 절 데이터베이스
TOP ORDER BY Microsoft SQL Server
ROWNUM ORDER BY Oracle
LIMIT ORDER BY PostgreSQL
SQL Server에서 쿼리 성능 향상하기

ORDER BY는 언제 쓰나

쿼리에서 ORDER BY를 사용하십시오:

  • 데이터를 탐색할 때
  • 결과를 정렬해야 할 명확한 이유가 있을 때
SQL Server에서 쿼리 성능 향상하기

Ayo berlatih!

SQL Server에서 쿼리 성능 향상하기

Preparing Video For Download...