Megosztás a következőn keresztül:


sys.dm_os_buffer_descriptors (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai 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.

Megjegyzé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 név Adattípus Description
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ű.
page_level 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ű.
page_type 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

A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.

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.

Ettől kezdve On Kapcsolat
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

Példák

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;  

Lásd még

sys.allocation_units (Transact-SQL)

SQL Server operációs rendszerhez kapcsolódó dinamikus felügyeleti nézetek (Transact-SQL)
Erőforrás-adatbázis
sys.dm_os_buffer_pool_extension_configuration (Transact-SQL)