การสืบค้นหลัง 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

ทั้งหมดไม่ได้ดีเสมอไป

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

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

SELECT * ใน 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 ...
... ... ... ... ...
การปรับปรุงประสิทธิภาพคิวรีใน 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

มาฝึกกันเถอะ!

การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

Preparing Video For Download...