sys.dm_os_buffer_descriptors
Возвращает сведения обо всех страницах данных, расположенных в данный момент в буферном пуле SQL Server. Это представление может использоваться, чтобы определить распределение страниц баз данных в буферном пуле в соответствии с базой данных, объектом или типом.
При считывании страницы данных с диска она копируется в буферный пул SQL Server и кэшируется для повторного использования. Каждая страница данных в кэше имеет один дескриптор буфера. Дескрипторы буфера уникально идентифицируют каждую страницу данных, расположенную в кэше в экземпляре SQL Server. Представление sys.dm_os_buffer_descriptors возвращает страницы в кэше для всех баз данных пользователя и системных баз данных. В их число входят страницы, связанные с базой данных resource.
Имя столбца | Тип данных | Описание |
---|---|---|
database_id |
int |
Идентификатор базы данных, связанный со страницей в в буферном пуле. Допускает значение NULL. |
file_id |
int |
Идентификатор файла, хранящего постоянный образ страницы. Допускает значение NULL. |
page_id |
int |
Идентификатор страницы в файле. Допускает значение NULL. |
page_level |
int |
Индексный уровень страницы. Допускает значение NULL. |
allocation_unit_id |
bigint |
Идентификатор единицы размещения страницы. Это значение может быть использовано для соединения sys.allocation_units. Допускает значение NULL. Примечание. В представлении sys.dm_os_buffer_descriptors в столбце allocation_unit_id могут отображаться несуществующие значения для тех кластеризованных индексов, которые были созданы в более ранних версиях SQL Server, чем SQL Server 2005. |
page_type |
nvarchar(60) |
Тип страницы, например: страница данных или страница индекса. Допускает значение NULL. Дополнительные сведения см. в разделе Страницы и экстенты. |
row_count |
int |
Количество строк на странице. Допускает значение NULL. |
free_space_in_bytes |
int |
Объем доступного свободного места, в байтах, на странице. Допускает значение NULL. |
is_modified |
bit |
1 = страница была изменена после того, как она была считана с диска. Допускает значение NULL. |
Разрешения
Требуется разрешение VIEW SERVER STATE на сервере.
Замечания
Представление sys.dm_os_buffer_descriptors возвращает страницы, которые использует база данных resource. Оно не возвращает сведения о свободных или заимствованных страницах, а также о страницах, при чтении которых возникали ошибки.
От | В | Вкл. | Связь |
---|---|---|---|
sys.dm_os_buffer_descriptors |
sys.databases |
database_id |
«многие к одному» |
sys.dm_os_buffer_descriptors |
<userdb>.sys.allocation_units |
allocation_unit_id |
«многие к одному» |
sys.dm_os_buffer_descriptors |
<userdb>.sys.database_files |
file_id |
«многие к одному» |
Примеры
А. Получение количества страниц в кэше для каждой базы данных
Следующий пример возвращает количество страниц в кэше, загруженных для каждой базы данных.
SELECT count(*)AS cached_pages_count
,CASE database_id
WHEN 32767 THEN 'ResourceDb'
ELSE db_name(database_id)
END AS Database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY db_name(database_id) ,database_id
ORDER BY cached_pages_count DESC
Б. Получение количества страниц в кэше для каждого объекта в текущей базе данных
Следующий пример возвращает количество страниц в кэше, загруженных для каждого объекта в текущей базе данных.
SELECT count(*)AS cached_pages_count
,name ,index_id
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN
(
SELECT object_name(object_id) AS name
,index_id ,allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND (au.type = 1 OR au.type = 3)
UNION ALL
SELECT object_name(object_id) AS name
,index_id, allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND au.type = 2
) AS obj
ON bd.allocation_unit_id = obj.allocation_unit_id
WHERE database_id = db_id()
GROUP BY name, index_id
ORDER BY cached_pages_count DESC
Журнал изменений
Версия | Журнал |
---|---|
17 июля 2006 г. |
|
См. также
Справочник
sys.allocation_units (Transact-SQL)
Динамические административные представления и функции
Динамические административные представления, относящиеся к операционной системе SQL Server