2011-03-09 3 views
4

MS SQL Server 2008은 이진 데이터 필드를 캐시합니까? 예 :MS SQL Server 2008은 바이너리 데이터 필드를 캐시합니까? 즉, VERBINARY

데이터를 지속적으로 캐싱하는 12GB RAM을 사용하는 MS SQL Server 2008 R2가 있습니다. 우리 데이터베이스에는 200GB 이상의 VARBINARY가 포함되어 있습니다. 이것도 캐시 될까요?

편집 :

당신이 SQL 서버 바이너리 데이터를 캐싱을 중지하거나 어떻게 든이 제한을 말할 수 @Martin SQL 서버는 실제로 캐시 이진 데이터 감사합니까?

답변

3

예. 시도해보십시오.

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_PAGETEXT_TREE_PAGE이지만 LOB 데이터는 데이터 페이지에도 저장할 수 있습니다.

+0

@ 리차드'TEXT_MIX_PAGE'와'TEXT_TREE_PAGE' - 나는 잊고있는 또 하나의 타입이있을 것이라고 생각합니다. 단지 SQL 서버 내부 책을보고 있습니다 ... –

+0

Nope. 그것이 LOB 페이지에 대한 생각입니다. 'TEXT_DATA'와'TEXT_TREE_PAGE'는 [내가 볼 수있는 한] 똑같습니다 (http://sqlskills.com/blogs/paul/post/Inside-the-Storage-Engine-Anatomy-of-a-page. aspx) varbinary (max)는 충분히 작 으면 페이지에 저장할 수 있습니다. –

+0

감사합니다. 다음 질문은 SQL에서 현재 이진 데이터 4GB를 캐시하는 방식으로 이진 데이터를 캐시하지 않도록 할 수있는 방법입니다. – Jeremy

관련 문제