Saya belajar tentang rencana Eksekusi dan saya mencoba berbagai pertanyaan dan membandingkan kinerja mereka dan menemukan ini:
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
Mereka berdua mengembalikan hasil yang sama - namun yang pertama mengeksekusi lebih cepat dan lebih sedikit sumber daya yang lapar (setidaknya SSMS memberitahu saya bahwa) Berikut adalah rencana eksekusi:
Perbandingan dari SQL Query Plan Explorer: Adakah yang bisa memberi saya wawasan tentang apa yang sebenarnya terjadi di balik layar dan mengapa hasilnya berbeda? Jika ada hal lain yang Anda butuhkan - beri tahu saya.
Terima kasih, Evaldas.