sys.dm_os_buffer_descriptors (języka Transact-SQL)
Zwraca informacje o wszystkich stron danych, które są aktualnie w SQL Server pula buforów.Dane wyjściowe tego widoku może służyć do określenia dystrybucji stron bazy danych w pula buforów zgodnie z bazy danych, obiektu lub typu.
Podczas odczytywania danych strona z dysku, strona zostanie wstawiona SQL Server pula buforów i buforowane dla ponownego użycia.Każda buforowane strona ma jeden deskryptor buforu.Deskryptory buforu jednoznacznej identyfikacji każdego danych strona , która jest aktualnie w pamięci podręcznej w wystąpienie SQL Server.sys.dm_os_buffer_descriptorsZwraca buforowane strony dla wszystkich użytkowników i bazy danych systemu.Dotyczy to stron, które są skojarzone z Resource bazy danych.
Nazwa kolumny |
Typ danych |
Opis |
---|---|---|
database_id |
int |
Identyfikator bazy danych skojarzonej z strona w pula buforów.Jest nullable. |
file_id |
int |
Identyfikator pliku, który przechowuje obraz utrwalonej strona.Jest nullable |
page_id |
int |
Identyfikator strona w pliku.Jest nullable. |
page_level |
int |
Indeks poziom strona.Jest nullable |
allocation_unit_id |
bigint |
Identyfikator jednostka alokacji strona.Ta wartość może służyć do łączyć sys.allocation_units.Jest nullable. Uwaga sys.dm_os_buffer_descriptorsmoże pokazać nieistniejącej wartości w allocation_unit_id dla indeksów klastrowanych, które zostały utworzone w wersjach SQL Server starsze niż SQL Server 2005. |
page_type |
nvarchar(60) |
Typ strona, takie jak: Dane strona lub stronaindeksu.Jest nullable.Aby uzyskać więcej informacji, zobacz Opis stron i zakresów. |
row_count |
int |
Liczba wierszy na strona.Jest nullable. |
free_space_in_bytes |
int |
Ilość dostępnego wolnego miejsca, w bajtach, na strona.Jest nullable. |
is_modified |
bit |
1 = Strona została zmodyfikowana po odczytu z dysku.Jest nullable. |
numa_mode |
int |
Węzeł niejednorodnej dostęp do pamięci dla buforu. |
Uprawnienia
Wymaga uprawnienia Wyświetlanie stanu serwera na serwerze.
Uwagi
sys.dm_os_buffer_descriptorsZwraca strony, które są używane przez Resource bazy danych.sys.dm_os_buffer_descriptorsZwraca informacje o wolne lub skradzionych strony lub stron, które wystąpiły błędy podczas zostały odczytane.
Z |
Aby |
Na |
Relacja |
---|---|---|---|
sys.dm_os_buffer_descriptors |
sys.databases |
database_id |
wiele do jednego |
sys.dm_os_buffer_descriptors |
<userdb>.sys.allocation_units |
allocation_unit_id |
wiele do jednego |
sys.dm_os_buffer_descriptors |
<userdb>.sys.database_files |
file_id |
wiele do jednego |
Przykłady
A.Zwracanie liczba buforowanych strona dla każdej bazy danych
Poniższy przykład zwraca liczbę stron ładowany dla każdej bazy danych.
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;
B.Zwracanie liczba buforowanych strona dla każdego obiektu w bieżącej bazie danych
Poniższy przykład zwraca liczbę stron ładowany dla każdego obiektu w bieżącej bazie danych.
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.partition_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;