sys.dm_os_buffer_descriptors
Restituisce informazioni relative a tutte le pagine di dati incluse nel pool di buffer di SQL Server. L'output di questa vista può essere utilizzato per determinare la distribuzione delle pagine del database nel pool di buffer in base al database, all'oggetto o al tipo.
Quando una pagina di dati viene letta dal disco, viene copiata nel pool di buffer di SQL Server e memorizzata nella cache per il riutilizzo. Ogni pagina di dati memorizzata nella cache è associata a un descrittore di buffer. I descrittori di buffer identificano in modo univoco ogni pagina di dati memorizzata nella cache in un'istanza di SQL Server. sys.dm_os_buffer_descriptors restituisce le pagine memorizzate nella cache per tutti i database utente e di sistema, incluse le pagine associate al database resource.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
database_id |
int |
ID del database associato alla pagina nel pool di buffer. Supporta valori Null. |
file_id |
int |
ID del file in cui è archiviata l'immagine persistente della pagina. Supporta valori Null. |
page_id |
int |
ID della pagina all'interno del file. Supporta valori Null. |
page_level |
int |
Livello di indice della pagina. Supporta valori Null. |
allocation_unit_id |
bigint |
ID dell'unità di allocazione della pagina. Questo valore può essere utilizzato per unire in join sys.allocation_units. Supporta valori Null. Nota sys.dm_os_buffer_descriptors potrebbe visualizzare valori inesistenti in allocation_unit_id per indici cluster creati nelle versioni di SQL Server precedenti a SQL Server 2005. |
page_type |
nvarchar(60) |
Tipo di pagina, ad esempio pagina di dati o pagina di indice. Supporta valori Null. Per ulteriori informazioni, vedere Pagine ed extent. |
row_count |
int |
Numero di righe nella pagina. Supporta valori Null. |
free_space_in_bytes |
int |
Quantità di spazio libero disponibile, in byte, nella pagina. Supporta valori Null. |
is_modified |
bit |
1 = La pagina è stata modificata dopo essere stata letta dal disco. Supporta valori Null. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Osservazioni
sys.dm_os_buffer_descriptors restituisce le pagine utilizzate dal database Resource. sys.dm_os_buffer_descriptors non restituisce invece informazioni sulle pagine libere o prelevate, né sulle pagine in cui siano stati rilevati errori in fase di lettura.
Da | A | Il | Relazione |
---|---|---|---|
sys.dm_os_buffer_descriptors |
sys.databases |
database_id |
molti-a-uno |
sys.dm_os_buffer_descriptors |
<userdb>.sys.allocation_units |
allocation_unit_id |
molti-a-uno |
sys.dm_os_buffer_descriptors |
<userdb>.sys.database_files |
file_id |
molti-a-uno |
Esempi
A. Restituzione del conteggio delle pagine memorizzate nella cache per ogni database
Nell'esempio seguente viene restituito il conteggio delle pagine caricate per ogni database.
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. Restituzione del conteggio delle pagine memorizzate nella cache per ogni oggetto nel database corrente
Nell'esempio seguente viene restituito il conteggio delle pagine caricate per ogni oggetto nel database corrente.
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
Cronologia modifiche
Versione | Cronologia |
---|---|
17 luglio 2006 |
|
Vedere anche
Riferimento
sys.allocation_units (Transact-SQL)
Funzioni e viste a gestione dinamica
Viste a gestione dinamica relative al sistema operativo di SQL Server