Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
Vrací informace o všech datových stránkách, které jsou aktuálně v SQL Server buffer poolu. Výstup tohoto pohledu lze použít k určení rozložení databázových stránek v bufferovém poolu podle databáze, objektu nebo typu. V SQL Serveru tento dynamický pohled správy také vrací informace o datových stránkách v souboru rozšíření buffer poolu. Pro více informací viz Rozšíření buffer poolu.
Když je datová stránka čtena z disku, je zkopírována do bufferového poolu SQL Serveru a uložena do cache pro opětovné použití. Každá stránka uložených dat má jeden bufferový deskriptor. Buffer descriptory jednoznačně identifikují každou datovou stránku, která je aktuálně uložena v jedné instanci SQL Serveru. sys.dm_os_buffer_descriptors vrací cacheované stránky pro všechny uživatelské a systémové databáze. To zahrnuje stránky spojené s databází zdrojů.
Poznámka:
Pro volání z Azure Synapse Analytics nebo Analytics Platform System (PDW) použijte název sys.dm_pdw_nodes_os_buffer_descriptors. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
| Název sloupce | Datový typ | Description |
|---|---|---|
| database_id | int | ID databáze spojené se stránkou v buffer poolu. Je nullable. Ve službě Azure SQL Database jsou hodnoty jedinečné v rámci jedné databáze nebo elastického fondu, ale ne v rámci logického serveru. |
| ID souboru | int | ID souboru, který ukládá zachovaný obraz stránky. Je nullable. |
| page_id | int | ID stránky uvnitř souboru. Je nullable. |
| page_level | int | Indexová úroveň stránky. Je nullable. |
| allocation_unit_id | bigint | ID alokační jednotky stránky. Tato hodnota může být použita k propojení sys.allocation_units. Je nullable. |
| page_type | nvarchar(60) | Typ stránky, například: Datová stránka nebo Indexová stránka. Je nullable. |
| row_count | int | Počet řádků na stránce. Je nullable. |
| free_space_in_bytes | int | Množství volného místa v bajtech na stránce. Je nullable. |
| is_modified | bit | 1 = Stránka byla upravena po přečtení z disku. Je nullable. |
| numa_node | int | Neuniformní uzel pro přístup k paměti pro buffer. Je nullable. |
| read_microsec | bigint | Skutečný čas (v mikrosekundách) potřebný k načtení stránky do bufferu. Toto číslo se resetuje při opětovném použití bufferu. Je nullable. |
| is_in_bpool_extension | bit | 1 = Stránka je v rozšíření buffer poolu. Je nullable. |
| pdw_node_id | int |
platí pro: Azure Synapse Analytics, Analytics Platform System (PDW) Identifikátor uzlu, na který je tato distribuce zapnutá. |
Povolení
Na SQL Serveru a službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.
U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.
Poznámky
sys.dm_os_buffer_descriptors vrací stránky, které jsou využívány databází zdrojů. sys.dm_os_buffer_descriptors nevrací informace o volně volných nebo ukradených stránkách, ani o stránkách, které měly chyby při jejich čtení.
| Od | To | On | Vztah |
|---|---|---|---|
| sys.dm_os_buffer_descriptors | sys.databases | database_id | M:1 |
| sys.dm_os_buffer_descriptors | <userdb>.sys.allocation_units | allocation_unit_id | M:1 |
| sys.dm_os_buffer_descriptors | <userdb>.sys.database_files | ID souboru | M:1 |
| sys.dm_os_buffer_descriptors | sys.dm_os_buffer_pool_extension_configuration | ID souboru | M:1 |
Examples
A. Vrácení počtu stránek v cache pro každou databázi
Následující příklad vrací počet načtených stránek pro každou databázi.
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. Vrácení počtu stránek v cache pro každý objekt v aktuální databázi
Následující příklad vrací počet načtených stránek pro každý objekt v aktuální databázi.
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;
Viz také
sys.allocation_units (Transact-SQL)
Zobrazení dynamické správy související s operačním systémem SQL Server (Transact-SQL)
Databáze zdrojů
sys.dm_os_buffer_pool_extension_configuration (Transact-SQL)