มันน่าจะเกิดจากแบบสอบถามที่ต้องการอ่านหน้าเพิ่มเติมในพูลบัฟเฟอร์และพูลบัฟเฟอร์ดึงหน่วยความจำเพิ่มเติมเพื่อรองรับ นี่คือวิธีที่ SQL Server ควรทำงาน หากกล่องนั้นเกิดแรงกดดันต่อหน่วยความจำก็จะขอให้ SQL Server เลิกใช้หน่วยความจำบางส่วนซึ่งจะทำ ลูกค้าไม่ควรกังวล
คุณสามารถใช้ DMV sys.dm_os_buffer_descriptors
เพื่อดูจำนวนหน่วยความจำบัฟเฟอร์พูลที่ใช้โดยฐานข้อมูลใด ตัวอย่างนี้จะบอกคุณว่าหน้าสะอาดและสกปรก (แก้ไขตั้งแต่จุดตรวจสอบล่าสุดหรืออ่านจากดิสก์) จากแต่ละฐานข้อมูลอยู่ในบัฟเฟอร์พูล คุณสามารถแก้ไขเพิ่มเติมได้
SELECT
(CASE WHEN ([is_modified] = 1) THEN 'Dirty' ELSE 'Clean' END) AS 'Page State',
(CASE WHEN ([database_id] = 32767) THEN 'Resource Database' ELSE DB_NAME (database_id) END) AS 'Database Name',
COUNT (*) AS 'Page Count'
FROM sys.dm_os_buffer_descriptors
GROUP BY [database_id], [is_modified]
ORDER BY [database_id], [is_modified];
GO
ฉันอธิบายสิ่งนี้เพิ่มเติมในโพสต์บล็อกนี้ภายในเครื่องมือจัดเก็บ: มีอะไรในพูลบัฟเฟอร์
คุณสามารถเช็คเอาต์ KB 907877 ( วิธีใช้คำสั่ง DBCC MEMORYSTATUS เพื่อตรวจสอบการใช้งานหน่วยความจำใน SQL Server 2005 ) ซึ่งจะทำให้คุณทราบถึงการแบ่งการใช้หน่วยความจำของ SQL Server ที่เหลือ (แต่ไม่ใช่สำหรับแต่ละฐานข้อมูล)
หวังว่านี่จะช่วยได้!