버퍼 풀로 더 많은 페이지를 읽으려는 쿼리와 버퍼 풀에서 더 많은 메모리를 가져 와서 발생했을 가능성이 높습니다. 이것이 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
이 블로그 게시물 인 Storage Engine 내부 : 버퍼 풀에 무엇이 있습니까?
KB 907877 ( DBCC MEMORYSTATUS 명령을 사용하여 SQL Server 2005의 메모리 사용을 모니터링하는 방법)을 체크 아웃 하면 나머지 SQL Server의 메모리 사용량 (데이터베이스 당 아님)을 분석 할 수 있습니다.
도움이 되었기를 바랍니다!