ขณะนี้ฉันรันDBCC FREEPROCCACHE
เมื่อฉันต้องการลบข้อมูลออกจากบัฟเฟอร์พูลระหว่างการรันเคียวรี SQL แต่ผมได้รับการตรวจสอบนี้ Technet DBCC FREESYSTEMCACHE
อ้างอิงบทความ แคชอะไรที่ไม่FREESYSTEMCACHE
เช็ดFREEPROCCACHE
?
ขณะนี้ฉันรันDBCC FREEPROCCACHE
เมื่อฉันต้องการลบข้อมูลออกจากบัฟเฟอร์พูลระหว่างการรันเคียวรี SQL แต่ผมได้รับการตรวจสอบนี้ Technet DBCC FREESYSTEMCACHE
อ้างอิงบทความ แคชอะไรที่ไม่FREESYSTEMCACHE
เช็ดFREEPROCCACHE
?
คำตอบ:
FREESYSTEMCACHE เก็บแคชอะไรที่ FREEPROCCACHE ไม่ใช้
มีแคชระบบจำนวนมากใน SQL Server ฉันหมายถึง SQL 2008R2 (ตามที่ฉันทดสอบ)
แบบสอบถามด้านล่างจะส่งคืนแคชทั้งหมดที่มี:
--- ONLY for Educational purpose. Don't attempt to run on PROD !!
select 'DBCC freesystemcache ('+''''+name+''''+')' from sys.dm_os_memory_clerks group by name
-- 155 rows
ดังนั้นสำหรับเช่นคุณต้องการล้างแคชทั้งหมดที่คุณจะทำงาน
DBCC FREESYSTEMCACHE ('ALL')
เพื่อล้างแคชเฉพาะที่คุณสามารถเรียกใช้ได้
DBCC FREESYSTEMCACHE ('userdatabase') -- cleans cache for specific user database
DBCC FREESYSTEMCACHE ('tempdb') -- clears cache for tempdb
DBCC FREESYSTEMCACHE ('Temporary Tables & Table Variables') -- clears all the temp table and variables
.. and many more (see above 155 rows returned from sql server 2008R2)
เมื่อใช้ FREEPROCCACHE คุณจะไม่สามารถล้างข้อมูลทั้งหมดที่กล่าวมาในระดับรายละเอียดนั้นได้
FREEPROCCACHE ==> จากBOL
ลบองค์ประกอบทั้งหมดออกจากแคชแผนลบแผนเฉพาะออกจากแคชแผนโดยระบุหมายเลขอ้างอิงแผนหรือหมายเลขอ้างอิง SQL หรือลบรายการแคชทั้งหมดที่เกี่ยวข้องกับกลุ่มทรัพยากรที่ระบุ
โดยพื้นฐานแล้วคุณอาจคิดว่ามันเกี่ยวข้องกับแคชแผนกับความสามารถในการลบแผนเฉพาะจากแคชด้วยหมายเลขอ้างอิงแผนและหรือชื่อกลุ่ม
Fun With DBCC FREEPROCCACHEเป็นบล็อกจาก Glenn Berry