Perintah-perintah itu melakukan dua hal:
- Bersihkan cache halaman, yang menyimpan halaman data yang telah diambil dari disk (biasanya faktor terbesar waktu dalam kueri adalah akses disk)
- Hapus cache rencana kueri, yang berarti server perlu membuat rencana kueri baru. Ini biasanya tidak signifikan kecuali untuk volume transaksi yang sangat tinggi.
Anda pada dasarnya mendapatkan waktu yang setara dengan skenario "kasus terburuk" - Anda baru saja me-reboot server dan tidak ada yang ada dalam memori. Proses selanjutnya tidak perlu membayar biaya untuk menarik data dari disk karena halaman tersebut sudah dimuat ke dalam memori.
Ini mirip dengan situasi dunia nyata - pengguna pertama Anda yang menjalankan kueri tertentu kemungkinan harus menunggu lebih lama daripada yang berjalan berikutnya, dengan asumsi Anda memeriksa data yang sama.
Metode bagus yang saya suka gunakan adalah menjalankan beberapa kali dan mengambil rata-rata. Ini sangat membantu dalam lingkungan bersama karena Anda tidak memiliki kontrol penuh atas sumber daya bersama seperti tempdb.
Anda juga dapat menggunakan perintah ini untuk mendapatkan informasi lebih lanjut tentang apa yang sebenarnya terjadi di balik layar:
SET STATISTICS IO ON
SET STATISTICS TIME ON
Ini akan memberi Anda informasi terperinci tentang pembacaan halaman dari disk (per objek), pembacaan halaman logis, waktu yang dihabiskan untuk menyusun rencana, dan waktu yang dihabiskan untuk menjalankan kueri.