Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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)