ก่อนเรียกใช้การทดสอบประสิทธิภาพ / พื้นฐานสำหรับแอปที่ใช้ SQL Server ฉันต้องการให้สามารถตั้งค่าอินสแตนซ์เป็นสถานะ "ใหม่ทั้งหมด" โดยไม่ต้องเริ่มต้นอินสแตนซ์ใหม่ มีขั้นตอนที่ฉันมักจะทำตาม แต่ฉันต้องการสร้างรายการที่ชัดเจนที่อยู่ในลำดับที่ถูกต้องและไม่มีขั้นตอนซ้ำซ้อน
รายการขั้นตอนนี้ทำให้การตั้งค่า SQL Server เป็นสถานะ "สะอาด" หรือไม่
ลำดับลอจิก / ถูกต้องหรือไม่?
มีขั้นตอนที่ซ้ำซ้อนหรือไม่?
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
เป็นสิ่งที่ดีสำหรับการทดสอบ แต่ไม่แม่นยำเสมอไป หากคุณกำลังอ้างถึงตารางปริมาณสูงเป็นไปได้มากที่คุณจะมีหน้าเว็บในหน่วยความจำเกือบตลอดเวลาและเวลา IO จะไม่เป็นปัจจัยใหญ่ในแบบสอบถาม คุณอาจวางน้ำหนักให้กับ IO มากกว่าที่เป็นจริงในกรณีนั้น