Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Információt ad vissza az összes jelenleg az SQL Server puffermedben lévő adatlapról. Ennek a nézetnek a kimenete segítségével meghatározható az adatbázis oldalak eloszlása a puffermedencében adatbázis, objektum vagy típus szerint. Az SQL Serverben ez a dinamikus menedzsment nézet a buffer pool kiterjesztésfájlban található adatoldalakról is visszaad információt. További információért lásd: Buffer Pool Extension.
Amikor egy adatlapot olvasnak a lemezről, az oldalt az SQL Server pufferkészletébe másolják, és újrahasznosításra gyorsatározzák őket. Minden gyorsítótározott adatlapnak van egy pufferleírója. A pufferleírók egyedileg azonosítják az egyes adatoldalakat, amelyek jelenleg egy SQL Server példányban van gyorsatárázva. sys.dm_os_buffer_descriptors minden felhasználói és rendszeradatbázis számára gyorsítótározott oldalakat ad. Ez magában foglalja azokat az oldalakat is, amelyek az Erőforrás adatbázishoz kapcsolódnak.
Feljegyzés
Az Azure Synapse Analytics vagy Analytics Platform System (PDW) néven használjuk a sys.dm_pdw_nodes_os_buffer_descriptors nevet. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
| Oszlop neve | Adattípus | Leírás |
|---|---|---|
| database_id | int | Az oldalhoz tartozó adatbázis azonosítója a puffermedencében. Null értékű. Az Azure SQL Database-ben az értékek egyediek egyetlen adatbázisban vagy rugalmas készletben, de nem logikai kiszolgálón belül. |
| fájl_azonosító | int | Az oldal tartós képét tároló fájl azonosítója. Null értékű. |
| page_id | int | Az oldal azonosítója a fájlban. Null értékű. |
| oldalszint | int | Az oldal index szintje. Null értékű. |
| allocation_unit_id | bigint | Az oldal allokációs egységének azonosítója. Ez az érték felhasználható sys.allocation_units összekapcsolására. Null értékű. |
| oldal_típus | nvarchar(60) | Az oldal típusa, például: Adatlapot vagy Indexoldalt. Null értékű. |
| row_count | int | A sor száma az oldalon. Null értékű. |
| free_space_in_bytes | int | Az oldalon elérhető szabad hely mennyisége, bájtokban. Null értékű. |
| is_modified | bit | 1 = Az oldalt módosították, miután felolvasták a lemezről. Null értékű. |
| numa_node | int | Nem egységes memória hozzáférés csomópont a pufferhez. Null értékű. |
| read_microsec | bigint | Az a tényleges idő (mikroszekundumokban), ami az oldal pufferbe való felolvasásához szükséges. Ez a szám akkor nullálódik, amikor a puffert újra felhasználjuk. Null értékű. |
| is_in_bpool_extension | bit | 1 = Az oldal a buffer pool kiterjesztésben van. Null értékű. |
| pdw_node_id | int |
A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW) Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található. |
Permissions
Az SQL Serveren és a felügyelt SQL-példányon VIEW SERVER STATE engedély szükséges.
Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.
Engedélyek az SQL Server 2022-hez és újabb verziókhoz
SERVER PERFORMANCE STATE engedélyt igényel VIEW a szerveren.
Megjegyzések
sys.dm_os_buffer_descriptors olyan oldalakat ad vissza, amelyeket az Erőforrás-adatbázis használ. sys.dm_os_buffer_descriptors nem küld vissza információkat ingyenes vagy ellopott oldalakról, illetve olyan oldalakról, amelyekben hibák voltak olvasáskor.
| Forrás | Címzett | Bekapcsolva | Relationship |
|---|---|---|---|
| sys.dm_os_buffer_descriptors | sys.databases | database_id | több az egyhez |
| sys.dm_os_buffer_descriptors | <userdb>.sys.allocation_units | allocation_unit_id | több az egyhez |
| sys.dm_os_buffer_descriptors | <userdb>.sys.database_files | fájl_azonosító | több az egyhez |
| sys.dm_os_buffer_descriptors | sys.dm_os_buffer_pool_extension_configuration | fájl_azonosító | több az egyhez |
Examples
A. Minden adatbázishoz vissza a gyorsítótározott oldalszám
A következő példa adja vissza az adatbázisokhoz betöltött oldalak számát.
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. A jelenlegi adatbázis minden objektumának gyorsítótározott oldalszámának visszaállítása
A következő példa adja vissza az aktuális adatbázis minden objektumához betöltött oldalak számát.
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;