Phương pháp thay thế 2

Cải thiện hiệu năng truy vấn trong SQL Server

Dean Smith

Founder, Atamai Analytics

INNER JOIN

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 ...
... ... ... ...
Cải thiện hiệu năng truy vấn trong SQL Server

LEFT OUTER JOIN

Bao gồm LEFT OUTER JOIN

Sơ đồ Venn LEFT OUTER JOIN bao gồm

Loại trừ LEFT OUTER JOIN

Sơ đồ Venn LEFT OUTER JOIN loại trừ

Cải thiện hiệu năng truy vấn trong SQL Server

LEFT OUTER JOIN loại trừ

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 ...
Cải thiện hiệu năng truy vấn trong SQL Server

Ôn tập: INTERSECT và EXCEPT

INTERSECT: kiểm tra có tồn tại

EXCEPT: kiểm tra không tồn tại

Ưu điểm

  • Tốt để thăm dò dữ liệu
  • Loại bỏ bản ghi trùng trong kết quả trả về

Nhược điểm

  • Số lượng và thứ tự cột trong câu lệnh SELECT phải giống nhau giữa các truy vấn
Cải thiện hiệu năng truy vấn trong SQL Server

Ôn tập: EXISTS và NOT EXISTS

EXISTS: kiểm tra có tồn tại

NOT EXISTS: kiểm tra không tồn tại

Ưu điểm

  • Truy vấn con dừng ngay khi đánh giá TRUE
  • Kết quả có thể chứa bất kỳ cột nào từ truy vấn ngoài, theo bất kỳ thứ tự nào

Nhược điểm

  • Kết quả chỉ có thể chứa các cột từ truy vấn ngoài
Cải thiện hiệu năng truy vấn trong SQL Server

Ôn tập: IN và NOT IN

IN: kiểm tra có tồn tại

NOT IN: kiểm tra không tồn tại

Ưu điểm

  • Kết quả có thể chứa bất kỳ cột nào từ truy vấn ngoài, theo bất kỳ thứ tự nào

Nhược điểm

  • Kết quả chỉ có thể chứa các cột từ truy vấn ngoài
  • Có thể không trả về kết quả do cách NOT IN xử lý null trong truy vấn con
Cải thiện hiệu năng truy vấn trong SQL Server

Ôn tập: INNER JOIN và L.O.J loại trừ

INNER JOIN: kiểm tra có tồn tại

LEFT OUTER JOIN loại trừ: kiểm tra không tồn tại

Ưu điểm

  • Kết quả có thể chứa bất kỳ cột nào từ mọi truy vấn được JOIN, theo bất kỳ thứ tự nào

Nhược điểm

  • Cần thêm điều kiện lọc WHERE IS NULL với LEFT OUTER JOIN loại trừ
Cải thiện hiệu năng truy vấn trong SQL Server

Ayo berlatih!

Cải thiện hiệu năng truy vấn trong SQL Server

Preparing Video For Download...