Tôi đang tìm hiểu về các kế hoạch Thực hiện và đang thử các truy vấn khác nhau và so sánh hiệu suất của chúng và tình cờ thấy điều này:
SELECT StatisticID
FROM (
SELECT StatisticID, ROW_NUMBER() OVER (ORDER BY StatisticID) AS rn
FROM FTCatalog.Statistic
) AS T
WHERE T.rn <= 1000
ORDER BY rn
SELECT TOP 1000 StatisticID
FROM FTCatalog.Statistic
ORDER BY StatisticID
Cả hai đều trả về cùng một tập kết quả - tuy nhiên lần đầu tiên thực thi nhanh hơn và ít tài nguyên hơn (ít nhất SSMS cho tôi biết điều đó) Dưới đây là các kế hoạch thực hiện:
So sánh từ SQL Query Plan Explorer: Bất cứ ai cũng có thể cho tôi cái nhìn sâu sắc về những gì thực sự xảy ra đằng sau hậu trường và tại sao kết quả lại khác nhau? Nếu có bất cứ điều gì bạn cần - chỉ cần cho tôi biết.
Cảm ơn, Evaldas.