การปรับปรุงประสิทธิภาพคิวรีใน SQL Server
Dean Smith
Founder, Atamai Analytics
SELECT c.CustomerID
,c.CompanyName
,o.OrderID
,o.OrderDate
,o.ShippedDate
,o.Freight
FROM Customers c
INNER JOIN Orders o
ON c.CustomerID = o.CustomerID
| CustomerID | CompanyName | OrderID | ... |
|---|---|---|---|
| VINET | Vins et alcools Chevalier | 10248 | ... |
| HANAR | Hanari Carnes | 10250 | ... |
| VICTE | Victuailles en stock | 10251 | ... |
| SUPRD | Suprêmes délices | 10252 | ... |
| ... | ... | ... | ... |
แบบรวม LEFT OUTER JOIN

แบบเฉพาะ LEFT OUTER JOIN

SELECT c.CustomerID
,c.CompanyName
,o.OrderID
,o.OrderDate
,o.ShippedDate
,o.Freight
FROM Customers c
LEFT OUTER JOIN Orders o
ON c.CustomerID = o.CustomerID
WHERE o.CustomerID IS NULL
| CustomerID | CompanyName | OrderID | ... |
|---|---|---|---|
| FISSA | FISSA Fabrica Inter. Salchichas S.A. | NULL | ... |
| PARIS | Paris spécialités | NULL | ... |
INTERSECT: ตรวจสอบการมีอยู่
EXCEPT: ตรวจสอบการไม่มีอยู่
ข้อดี
ข้อเสีย
SELECT ต้องเหมือนกันระหว่างคิวรีEXISTS: ตรวจสอบการมีอยู่
NOT EXISTS: ตรวจสอบการไม่มีอยู่
ข้อดี
ข้อเสีย
IN: ตรวจสอบการมีอยู่
NOT IN: ตรวจสอบการไม่มีอยู่
ข้อดี
ข้อเสีย
NOT IN จะไม่คืนผลลัพธ์ เนื่องจากวิธีที่มันจัดการกับ null ใน sub-queryINNER JOIN: ตรวจสอบการมีอยู่
LEFT OUTER JOIN แบบเฉพาะ: ตรวจสอบการไม่มีอยู่
ข้อดี
ข้อเสีย
IS NULL ใน WHERE เมื่อใช้ LEFT OUTER JOIN แบบเฉพาะการปรับปรุงประสิทธิภาพคิวรีใน SQL Server