Execution plans

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

Dean Smith

Founder, Atamai Analytics

ขั้นตอนการปรับให้เหมาะสม

ขั้นตอนการปรับให้เหมาะสม

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

ขั้นตอนการปรับให้เหมาะสม

ขั้นตอนการปรับให้เหมาะสมพร้อมคำอธิบาย

พารามิเตอร์ต้นทุนที่ประเมิน ได้แก่:

  • การใช้งานโปรเซสเซอร์
  • การใช้งานหน่วยความจำ
  • การอ่านหน้าข้อมูล
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

ขั้นตอนการปรับให้เหมาะสม

ขั้นตอนการปรับให้เหมาะสมและ execution engine

พารามิเตอร์ต้นทุนที่ประเมิน ได้แก่

  • การใช้งานโปรเซสเซอร์
  • การใช้งานหน่วยความจำ
  • การอ่านหน้าข้อมูล
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

ข้อมูลจาก execution plans

Execution plans ให้ข้อมูลเกี่ยวกับ:

  • การใช้งาน index หรือไม่
  • ประเภทของ join ที่ใช้
  • ตำแหน่งและต้นทุนสัมพัทธ์ของ:
    • เงื่อนไขการกรอง
    • การเรียงลำดับ
    • การรวมกลุ่ม
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

Estimated execution plan ใน SSMS

 

รายการเมนูในแถบเครื่องมือ SSMS สำหรับ estimated execution plan

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

Estimated execution plan ใน SSMS

 

รายการเมนูในแถบเครื่องมือ SSMS สำหรับ estimated execution plan พร้อม tooltip

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

การดู execution plans ใน SSMS

Execution plan ใน SSMS

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

สถิติของ operator

สถิติของ operator ใน execution plan

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

การอ่าน execution plans

operators ใน execution plan

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

ตัวอย่าง index

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

operator Table Scan

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

operator Clustered Index Seek

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

ตัวอย่าง Sort operator

SELECT FruitName, FruitType
FROM Fruits1

UNION

SELECT FruitName, FruitType
FROM Fruits2;

Execution plan ที่ใช้ UNION

SELECT FruitName, FruitType
FROM Fruits1

UNION ALL

SELECT FruitName, FruitType
FROM Fruits2;

Execution plan ที่ใช้ UNION ALL

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

Execution plan เดียวกัน?

SELECT * 
FROM Customers
WHERE CustomerID IN 
    (SELECT CustomerID 
     FROM Orders);

Execution plan ของ IN และ EXISTS

SELECT * 
FROM Customers c
WHERE EXISTS
    (SELECT 1 
     FROM Orders o 
     WHERE c.CustomerID = o.CustomerID);

Execution plan ของ IN และ EXISTS

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

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

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

Preparing Video For Download...