예. 시도해보십시오.
WITH T
AS (SELECT database_id,
page_type,
total_page_count = COUNT(*) OVER(),
page_count = COUNT(*) OVER
(PARTITION BY database_id, page_type),
row_num = ROW_NUMBER() OVER
(PARTITION BY database_id, page_type
ORDER BY (SELECT 0))
FROM sys.dm_os_buffer_descriptors)
SELECT page_type,
page_count,
PercentageOfCache = ROUND(1E2 * page_count/total_page_count, 2),
SizeInCache =
CASE
WHEN page_count > 131072
THEN LTRIM(STR(page_count/131072.0) + ' GB')
WHEN page_count > 128
THEN LTRIM(STR(page_count/128.0) + ' MB')
ELSE LTRIM(STR(page_count * 8) + ' KB')
END
FROM T
WHERE database_id = DB_ID()
AND row_num = 1
ORDER BY page_count DESC
각 페이지 유형 중 현재 데이터베이스의 버퍼 캐시에있는 페이지 수를 확인하십시오.
전용 LOB 페이지 유형은 TEXT_MIX_PAGE
및 TEXT_TREE_PAGE
이지만 LOB 데이터는 데이터 페이지에도 저장할 수 있습니다.
@ 리차드'TEXT_MIX_PAGE'와'TEXT_TREE_PAGE' - 나는 잊고있는 또 하나의 타입이있을 것이라고 생각합니다. 단지 SQL 서버 내부 책을보고 있습니다 ... –
Nope. 그것이 LOB 페이지에 대한 생각입니다. 'TEXT_DATA'와'TEXT_TREE_PAGE'는 [내가 볼 수있는 한] 똑같습니다 (http://sqlskills.com/blogs/paul/post/Inside-the-Storage-Engine-Anatomy-of-a-page. aspx) varbinary (max)는 충분히 작 으면 페이지에 저장할 수 있습니다. –
감사합니다. 다음 질문은 SQL에서 현재 이진 데이터 4GB를 캐시하는 방식으로 이진 데이터를 캐시하지 않도록 할 수있는 방법입니다. – Jeremy