Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Gibt Informationen zu allen Datenseiten zurück, die sich derzeit im SQL Server-Pufferpool befinden. Die Ausgabe dieser Sicht kann verwendet werden, um die Verteilung der Datenbankseiten im Pufferpool gemäß der Datenbank, des Objekts oder des Typs zu bestimmen. In SQL Server gibt diese dynamische Verwaltungsansicht auch Informationen zu den Datenseiten in der Pufferpoolerweiterungsdatei zurück. Weitere Informationen finden Sie unter Pufferpoolerweiterung.
Wenn eine Datenseite vom Datenträger gelesen wird, wird die Seite in den SQL Server-Pufferpool kopiert und zur Wiederverwendung zwischengespeichert. Jede zwischengespeicherte Datenseite verfügt über einen Pufferdeskriptor. Pufferdeskriptoren identifizieren eindeutig jede Datenseite, die derzeit in einer Instanz von SQL Server zwischengespeichert wird. sys.dm_os_buffer_descriptors gibt zwischengespeicherte Seiten für alle Benutzer- und Systemdatenbanken zurück. Dazu zählen auch Seiten, die der Ressourcendatenbank zugeordnet sind.
Note
Um dies von Azure Synapse Analytics oder Analytics Platform System (PDW) aufzurufen, verwenden Sie den Namen sys.dm_pdw_nodes_os_buffer_descriptors. Diese Syntax wird von serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
| Spaltenname | Datentyp | Description |
|---|---|---|
| database_id (Datenbank-ID) | int | ID der Datenbank, die der Seite im Pufferpool zugeordnet ist. Nullwerte zulassend. In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers. |
| Datei-ID | int | ID der Datei, die das persistente Image der Seite speichert. Nullwerte zulassend. |
| page_id | int | ID der Seite innerhalb der Datei. Nullwerte zulassend. |
| page_level | int | Indexebene der Seite. Nullwerte zulassend. |
| allocation_unit_id | bigint | ID der Zuordnungseinheit der Seite. Dieser Wert kann für den Join mit sys.allocation_units verwendet werden. Nullwerte zulassend. |
| page_type | nvarchar(60) | Typ der Seite, z. B. Datenseite oder Indexseite. Nullwerte zulassend. |
| Anzahl der Zeilen | int | Anzahl der Zeilen auf der Seite. Nullwerte zulassend. |
| free_space_in_bytes | int | Umfang des verfügbaren Speicherplatzes auf der Seite (in Byte). Nullwerte zulassend. |
| is_modified | bit | 1 = Seite wurde nach dem Lesen vom Datenträger geändert. Nullwerte zulassend. |
| numa_node | int | NUMA-Knoten (Non-Uniform Memory Access) für den Puffer. Nullwerte zulassend. |
| read_microsec | bigint | Die tatsächliche Zeit (in Mikrosekunden), die erforderlich ist, um die Seite in den Puffer einzulesen. Diese Zahl wird zurückgesetzt, wenn der Puffer wiederverwendet wird. Nullwerte zulassend. |
| is_in_bpool_extension | bit | 1 = Seite befindet sich in der Pufferpoolerweiterung. Nullwerte zulassend. |
| pdw_node_id | int |
gilt für: Azure Synapse Analytics, Analytics Platform System (PDW) Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet. |
Erlaubnisse
Für SQL Server und SQL Managed Instance ist VIEW SERVER STATE Berechtigung erforderlich.
Für SQL-Datenbank Basic, S0und S1 Dienstziele sowie für Datenbanken in elastischen Poolsist der Serveradministrator Konto, der Microsoft Entra-Administrator Konto oder die Mitgliedschaft in der ##MS_ServerStateReader##Serverrolle erforderlich. Für alle anderen SQL-Datenbankdienstziele ist entweder die VIEW DATABASE STATE Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader## Serverrolle erforderlich.
Berechtigungen für SQL Server 2022 und höher
Benötigt VIEW die Berechtigung SERVER PERFORMANCE STATE auf dem Server.
Bemerkungen
sys.dm_os_buffer_descriptors gibt Seiten zurück, die von der Ressourcendatenbank verwendet werden. sys.dm_os_buffer_descriptors gibt keine Informationen zu kostenlosen oder gestohlenen Seiten oder über Seiten zurück, die beim Lesen Fehler hatten.
| Von | To | On | Relationship |
|---|---|---|---|
| sys.dm_os_buffer_descriptors | sys.databases | database_id (Datenbank-ID) | n:1 |
| sys.dm_os_buffer_descriptors | <userdb>.sys.allocation_units | allocation_unit_id | n:1 |
| sys.dm_os_buffer_descriptors | <userdb>.sys.database_files | Datei-ID | n:1 |
| sys.dm_os_buffer_descriptors | sys.dm_os_buffer_pool_extension_configuration | Datei-ID | n:1 |
Examples
A. Zurückgeben der zwischengespeicherten Seitenanzahl für jede Datenbank
Im folgenden Beispiel wird die für jede Datenbank geladene Seitenanzahl zurückgegeben.
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. Zurückgeben der zwischengespeicherten Seitenanzahl für jedes Objekt in der aktuellen Datenbank
Im folgenden Beispiel wird die für jedes Objekt in der aktuellen Datenbank geladene Seitenanzahl zurückgegeben.
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;
Siehe auch
sys.allocation_units (Transact-SQL)
Dynamische Verwaltungssichten in Verbindung mit dem SQL Server-Betriebssystem (Transact-SQL)
Ressourcendatenbank
sys.dm_os_buffer_pool_extension_configuration (Transact-SQL)