Sebelum menjalankan tes kinerja / baseline untuk aplikasi yang menggunakan SQL Server, saya ingin dapat mengatur instance ke keadaan "bersih", tanpa memulai kembali instance. Ada langkah-langkah yang cenderung saya ikuti, tetapi saya ingin membangun daftar definitif yang berada dalam urutan yang benar, dan tidak memiliki langkah-langkah yang berlebihan.
Apakah daftar langkah ini menyelesaikan pengaturan SQL Server ke keadaan "bersih"?
Apakah urutannya logis / benar?
Apakah ada langkah yang berlebihan?
CHECKPOINT -- Write all dirty pages
DBCC DROPCLEANBUFFERS -- All should be clean after checkpoint?
DBCC FREEPROCCACHE -- Clear the plan cache
DBCC FREESYSTEMCACHE -- Is this necessary after FREEPROCCACHE?
DBCC FREESESSIONCACHE -- May not be necessary if distributed queries aren't used, but want to catch all scenarios
EXEC SP_UPDATESTATS -- Refresh stats
'BEGIN TESTING!'
DROPCLEANBUFFERS
bagus untuk pengujian tetapi tidak selalu akurat. Jika Anda mereferensikan tabel volume tinggi, sangat mungkin Anda hampir selalu memiliki halaman di memori, dan waktu IO tidak akan menjadi faktor besar dalam kueri itu. Anda mungkin memberi bobot lebih pada IO daripada yang realistis dalam hal itu.