4

MS SQL Server 2008 はバイナリ データ フィールドをキャッシュしますか? つまり、VARBINARY

12 GB の RAM を使用して常にデータをキャッシュしている MS SQL Server 2008 R2 があります。私たちのデータベースには、200 GB 以上の VARBINARY が含まれています。これもキャッシュされますか?

EDIT: SQL Serverは実際にバイナリデータをキャッシュしますありがとう@Martin

バイナリ データのキャッシュを停止するか、これを制限するように SQL Server に指示できますか?

4

1 に答える 1

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_PAGEありますTEXT_TREE_PAGEが、LOB データをデータ ページに格納することもできます。

于 2011-03-09T22:40:47.607 に答える