Posts Tagged ‘Execution plan’

 

Thứ Tự Xử Lý Điều Kiện Ở Mệnh Đề WHERE

Theo bạn các điều kiện trong mệnh đề WHERE được xử lý theo thứ tự nào, từ phải sang trái hay từ trái sang phải? Thực tế là, chúng không phải luôn luôn được xử lý theo một thứ tự nhất định như các ngôn ngữ khác. Chúng được xử lý theo cách SQL Server đánh giá là đạt hiệu quả cao nhất với từng câu lệnh. Nếu bạn viết code các điều kiện của mệnh đề WHERE dựa trên giả định chúng được xử lý theo thứ tự nào đó, bạn sẽ gặp tình huống câu lệnh bị lỗi khi thứ tự xử lý bị đảo ngược (ví dụ khi lượng dữ liệu thay đổi và/hoặc có thêm index mới được tạo…).
Ta hãy thực hiện thí nghiệm sau: … đọc tiếp »

Posted on 31/10/2012 by Vũ Huy Tâm | Categories: SQL Server Programming, Tip & Trick

Tối Ưu Hóa Câu Lệnh Bằng Covering Index

Khi một non-clustered index được dùng để thực thi một câu lệnh, ta thường thấy trong kế hoạch thực thi thao tác Key Lookup (hoặc Bookmark Lookup), là thao tác mà hệ thống sau khi tìm kiếm trên cây index nhảy tới bản ghi tương ứng trong bảng để lấy các trường dữ liệu cần trả về:

USE AdventureWorks
GO
SELECT ContactID, FirstName, LastName
FROM  Person.Contact
WHERE EmailAddress = 'kristina1@adventure-works.com'

Ta thấy index IX_Contact_EmailAddress trên trường EmailAddress đã được sử dụng (thao tác Index Seek), và câu lệnh đạt được hiệu năng tốt hơn rất nhiều so với quét bảng khi không có index. Tuy nhiên thao tác Key Lookup ở đó vẫn chiếm tới một nửa chi phí câu lệnh. Một kỹ thuật có thể giúp tối ưu hơn nữa cho câu lệnh này, là loại bỏ Key Lookup bằng cách đưa các trường dữ liệu cần thiết vào cây index. Khi đó hệ thống chỉ cần tìm trên index và trả kết quả về cho câu lệnh mà không cần phải truy nhập vào bảng. Index lúc đó được gọi là covering index cho câu lệnh. … đọc tiếp »

Posted on 29/7/2010 by Vũ Huy Tâm | Categories: Index, Performance tuning

Index Giúp Tăng Hiệu Năng Thực Hiện Như Thế Nào

Index là phương tiện rất mạnh để tăng hiệu năng thực hiện của câu lệnh. Bài post này sẽ cung cấp một ví dụ cho bạn thấy bên trong SQL Server sử dụng index để  tăng hiệu năng như thế nào. … đọc tiếp »

Posted on 18/4/2010 by Vũ Huy Tâm | Categories: Index, Performance tuning