MS SQL Server 2008 кеширует двоичные поля данных? Т.е. VARBINARY - PullRequest
4 голосов
/ 10 марта 2011

MS SQL Server 2008 кэширует поля двоичных данных?Т.е. VARBINARY

У нас есть MS SQL Server 2008 R2, использующий 12 Гб оперативной памяти, постоянно кэширующий данные.Наша база данных включает в себя более 200 ГБ VARBINARY.Будет ли это также кэшироваться?

РЕДАКТИРОВАТЬ: SQL Server действительно кэширует двоичные данные Спасибо @ Martin

Можете ли вы сказать SQL Server прекратить кэширование двоичных данных или ограничитьэто как-то?

1 Ответ

3 голосов
/ 10 марта 2011

Да. Попробуйте

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  

Чтобы узнать, сколько страниц каждого типа в данный момент находится в буферном кеше вашей базы данных.

Выделенные типы страниц больших объектов TEXT_MIX_PAGE и TEXT_TREE_PAGE, но данные больших объектов также могут храниться на страницах данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...