ฉันหาสิ่งเล็ก ๆ น้อย ๆ
select * from sys.dm_exec_query_stats
จะแสดงแผนการสืบค้นที่แคชทั้งหมด น่าเสียดายที่ไม่มีข้อความ SQL ปรากฏอยู่ที่นั่น
อย่างไรก็ตามคุณสามารถเข้าร่วมข้อความ SQL กับแผนดังนี้:
select plan_handle, creation_time, last_execution_time, execution_count, qt.text
FROM
sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text (qs.[sql_handle]) AS qt
จากที่นี่มันค่อนข้างง่ายที่จะเพิ่มส่วนWHERE
คำสั่งเพื่อค้นหา SQL ที่ฉันรู้ว่าอยู่ในแบบสอบถามและจากนั้นฉันสามารถดำเนินการได้:
DBCC FREEPROCCACHE (plan_handle_id_goes_here)
เพื่อลบแผนแบบสอบถามแต่ละรายการออกจากแคชแผนแบบสอบถาม ไม่ใช่ว่าง่ายหรือสะดวก แต่ดูเหมือนว่าจะใช้งานได้ ..
แก้ไข: ทิ้งแคชแบบสอบถามทั้งหมดจะทำงานและมีอันตรายน้อยกว่ามันฟังอย่างน้อยในประสบการณ์ของฉัน:
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;