Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Returnerar information om alla datasidor som för närvarande finns i SQL Server-buffertpoolen. Utdata från denna vy kan användas för att bestämma fördelningen av databassidor i buffertpoolen enligt databas, objekt eller typ. I SQL Server returnerar denna dynamiska hanteringsvy också information om datasidorna i bufferpoolens tilläggsfil. För mer information, se Buffer Pool Extension.
När en datasida läses från disken kopieras sidan till SQL Server-buffertpoolen och cachas för återanvändning. Varje cachad datasida har en buffertbeskrivare. Buffertbeskrivare identifierar unikt varje datasida som för närvarande är cachad i en instans av SQL Server. sys.dm_os_buffer_descriptors returnerar cachade sidor för alla användar- och systemdatabaser. Detta inkluderar sidor som är kopplade till resursdatabasen.
Anmärkning
För att kalla detta från Azure Synapse Analytics eller Analytics Platform System (PDW), använd namnet sys.dm_pdw_nodes_os_buffer_descriptors. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| database_id | int | ID för databasen kopplad till sidan i buffertpoolen. Kan inte vara null. I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server. |
| file_id | int | ID för filen som lagrar den bevarade bilden av sidan. Kan inte vara null. |
| page_id | int | ID för sidan i filen. Kan inte vara null. |
| page_level | int | Indexnivå på sidan. Kan inte vara null. |
| allocation_unit_id | bigint | ID för sidans allokeringsenhet. Detta värde kan användas för att ansluta sys.allocation_units. Kan inte vara null. |
| page_type | nvarchar(60) | Typ av sida, såsom: Datasida eller Indexsida. Kan inte vara null. |
| row_count | int | Antal rader på sidan. Kan inte vara null. |
| free_space_in_bytes | int | Mängden tillgängligt ledigt utrymme, i bytes, på sidan. Kan inte vara null. |
| is_modified | bit | 1 = Sidan har ändrats efter att den lästs från disken. Kan inte vara null. |
| numa_node | int | Nod för icke-uniform minnesåtkomst för bufferten. Kan inte vara null. |
| read_microsec | bigint | Den faktiska tiden (i mikrosekunder) som krävs för att läsa sidan i bufferten. Detta nummer återställs när bufferten återanvänds. Kan inte vara null. |
| is_in_bpool_extension | bit | 1 = Sidan är i buffer pool-tillägget. Kan inte vara null. |
| pdw_node_id | int |
gäller för: Azure Synapse Analytics, Analytics Platform System (PDW) Identifieraren för noden som den här fördelningen är på. |
Permissions
På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.
I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.
Behörigheter för SQL Server 2022 och senare
Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.
Anmärkningar
sys.dm_os_buffer_descriptors returnerar sidor som används av resursdatabasen. sys.dm_os_buffer_descriptors returnerar inte information om gratis eller stulna sidor, eller om sidor som hade fel när de lästes.
| Från | Till | On | Förhållande |
|---|---|---|---|
| sys.dm_os_buffer_descriptors | sys.databases | database_id | många-till-en |
| sys.dm_os_buffer_descriptors | <userdb>.sys.allocation_units | allocation_unit_id | många-till-en |
| sys.dm_os_buffer_descriptors | <userdb>.sys.database_files | file_id | många-till-en |
| sys.dm_os_buffer_descriptors | sys.dm_os_buffer_pool_extension_configuration | file_id | många-till-en |
Examples
A. Returnerar cachad sidräkning för varje databas
Följande exempel visar antalet sidor som laddats för varje databas.
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. Returnerar cachad sidräkning för varje objekt i den aktuella databasen
Följande exempel återger antalet sidor som laddats för varje objekt i den aktuella databasen.
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;
Se även
sys.allocation_units (Transact-SQL)
SQL Server-operativsystemrelaterade dynamiska hanteringsvyer (Transact-SQL)
Resursdatabas
sys.dm_os_buffer_pool_extension_configuration (Transact-SQL)