ฉันมีตารางไม่กี่ตารางในฐานข้อมูลของฉันที่ไม่ควรแคช
ฉันจะบอก SQL Server ไม่ให้แคชเพจของตารางหรือฉันจะล้างตารางเดียวจากแคชได้อย่างไร
การล้างแคชทั้งหมดไม่ใช่ตัวเลือก
ฉันใช้ SQL Server 2008 และ SQL Server 2008 R2
ฉันมีตารางไม่กี่ตารางในฐานข้อมูลของฉันที่ไม่ควรแคช
ฉันจะบอก SQL Server ไม่ให้แคชเพจของตารางหรือฉันจะล้างตารางเดียวจากแคชได้อย่างไร
การล้างแคชทั้งหมดไม่ใช่ตัวเลือก
ฉันใช้ SQL Server 2008 และ SQL Server 2008 R2
คำตอบ:
ไม่มีวิธีการทำเช่นนี้
DBCC DROPCLEANBUFFERS
ไม่ยอมรับพารามิเตอร์ใด ๆ สำหรับฐานข้อมูลหรือวัตถุเฉพาะ ภายใน SQL Server สามารถทำได้ในระดับฐานข้อมูลอย่างไรก็ตามเมื่อฐานข้อมูลเป็นAUTO_CLOSE
d เพจที่เกี่ยวข้องทั้งหมดจะถูกลบออกจากแคชบัฟเฟอร์
นอกจากนี้ภายใน SQL Server ยังสามารถทำเครื่องหมายหน้าบางอย่างเช่นพวกเขาจะเป็นคนแรกที่เตะออกโดยนักเขียนขี้เกียจ สิ่งนี้ถูกใช้โดย DMVs เช่นsys.dm_db_index_physical_stats
เพื่อหลีกเลี่ยงการล้างบัฟเฟอร์พูลตามที่กล่าวถึงในบทความนี้แต่ฟังก์ชั่นนี้ไม่ได้เปิดเผยในทางใดทางหนึ่งของเรา (แม้ว่ามันอาจจะมีประโยชน์ที่จะระบุเช่นเดียวกันหากทำการสแกนครั้งเดียว ของตารางขนาดใหญ่ตัวอย่าง)
คุณไม่สามารถระบุว่าไม่ควรแคตารางที่เฉพาะเจาะจง อะไรทำให้คุณคิดว่าคุณไม่ต้องการตารางในแคช
SQL Server ทำการดำเนินการตามปกติทั้งหมดในพูลบัฟเฟอร์ดังนั้นหากคุณสามารถบอก SQL Server ไม่ให้โหลดตารางลงในแคชตารางนั้นจะไม่สามารถเข้าถึงได้สำหรับการดำเนินการ DML ปกติ