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


sys.dm_db_page_info (Transact-SQL)

A következőkre vonatkozik: Az SQL Server 2019 (15.x) és újabb verziói az Azure SQL DatabaseAzure SQL Managed InstanceSQL Database-adatbázist a Microsoft Fabricben

Egy adatbázis lapjára vonatkozó információkat ad vissza. A függvény egy sort ad vissza, amely tartalmazza a lap fejlécadatait, beleértve a , object_idés index_id.partition_id Ez a függvény a legtöbb esetben felülírja a használat DBCC PAGE szükségességét.

Megjegyzés:

sys.dm_db_page_info jelenleg csak az SQL Server 2019 -ben (15.x) és újabb verziókban támogatott.

Szemantika

sys.dm_db_page_info ( DatabaseId , FileId , PageId , Mode )

Arguments

DatabaseId | NULL | ALAPÉRTELMEZETT

Az adatbázis azonosítója. A DatabaseIdsmallint típusú. Az érvényes bemenet az adatbázis azonosítószáma. Az alapértelmezett érték NULL, de ha null értéket küld a paraméterhez, az hibát fog eredményezni.

FileId | NULL | ALAPÉRTELMEZETT

A fájl azonosítója. A FileIdint. Az érvényes bemenet a DatabaseId által megadott adatbázisban lévő fájlok azonosítószáma. Az alapértelmezett érték NULL, de ha null értéket küld a paraméterhez, az hibát fog eredményezni.

PageId | NULL | ALAPÉRTELMEZETT

A lap azonosítója. A PageId egy int. Az érvényes bemenet a FileId által megadott fájlban lévő lap azonosítószáma. Az alapértelmezett érték NULL, de ha null értéket küld a paraméterhez, az hibát fog eredményezni.

Mód | NULL | ALAPÉRTELMEZETT

Meghatározza a függvény kimenetének részletességi szintjét. 'LIMITED' NULL értékeket ad vissza az összes leírási oszlophoz, a "RÉSZLETES" pedig a leírásoszlopokat fogja feltölteni. DEFAULT az 'LIMITED'.

Visszaadott tábla

Oszlop név Adattípus Description
database_id int Adatbázis-azonosító.

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 Fájlazonosító
page_id int Oldalazonosító
oldal_fejléce_verzió int Oldalfej verziója
oldal_típus int Oldal típusa
oldaltípus_leírás nvarchar(64) Az oldaltípus leírása
oldaltípus_jelző_bitek nvarchar(64) Jelölőbitek beírása az oldalfejlécbe
page_type_flag_bits_desc nvarchar(64) Típusjelző bitek leírása az oldalfejlécben
page_flag_bits nvarchar(64) Bitek megjelölése az oldalfejlécben
page_flag_bits_desc nvarchar(256) Bitek megjelölése az oldalfejlécben
page_lsn nvarchar(64) Naplósorszám / időbélyeg
oldalszint int Az oldal szintje az indexben (leaf = 0)
object_id int Az oldalt birtokoló objektum azonosítója
index_id int Az index azonosítója (halom adatoldalak esetén 0)
partíció_azonosító bigint A partíció azonosítója
allokációs_egység_id bigint A foglalási egység azonosítója
titkosítva_van bit Bit, amely jelzi, hogy a lap titkosítva van-e
ellenőrzőösszeg_van bit Bit annak jelzéséhez, hogy a lap rendelkezik-e ellenőrzőösszeg-értékkel
ellenőrzőösszeg int Tárolja az adatsérülés észleléséhez használt ellenőrzőösszeg-értéket
is_iam_pg bit Bit, amely jelzi, hogy a lap IAM-lap-e vagy sem
is_mixed_ext bit Bit, amely jelzi, hogy vegyes kiterjedésben van-e lefoglalva
van_kísértet_rekordok bit Bit, amely jelzi, hogy a lap tartalmaz-e szellemrekordokat
A szellemes rekord olyan rekord, amely törlésre lett megjelölve, de még nem lett eltávolítva.
verziórekordokkal rendelkezik bit Bit, amely jelzi, hogy a lap tartalmazza-e a gyorsított adatbázis-helyreállításhoz használt verziórekordokat
pfs_page_id int A megfelelő PFS-oldal oldalazonosítója
pfs_is_allocated (használva van) bit Bit annak jelzéséhez, hogy a lap a megfelelő PFS-lapon lefoglaltként van-e megjelölve
pfs_alloc_percent int Foglalási százalék a megfelelő PFS-bájt által jelzett módon
pfs_status nvarchar(64) PFS bájt
pfs_status_desc nvarchar(64) A PFS-bájt leírása
gam_page_id int A megfelelő GAM-oldal oldalazonosítója
gam_status bit A GAM-ben található bit jelzi, hogy ki van-e foglalva.
gam_állapot_leírás nvarchar(64) A GAM állapotbitjének leírása
sgam_page_id int A megfelelő SGAM-oldal oldalazonosítója
sgam_status bit Bit, amely jelzi, hogy ki van-e foglalva az SGAM-ben
sgam_status_desc nvarchar(64) Az SGAM állapotbitjének leírása
diff_map_page_id int A megfelelő különbségi bitkép oldalazonosítója
diff_status bit Bit, amely jelzi, hogy a diff állapota módosult-e
különbség_állapot_leírás nvarchar(64) A diff állapotbit leírása
ml_térkép_oldal_azonosító int A megfelelő minimális naplózási bitkép oldalazonosítója
ml_status bit Bit, amely jelzi, hogy a lap minimálisan van-e naplózva
ml_status_desc nvarchar(64) A minimális naplózási állapotbit leírása
prev_page_file_id smallint Előző lap fájlazonosítója
prev_page_page_id int Előző oldal oldalazonosítója
next_page_file_id smallint Következő lap fájlazonosítója
next_page_page_id int Következő oldal oldalazonosítója
fixed_length smallint Rögzített méretű sorok hossza
foglalathely_szám smallint Pontok teljes száma (használatban és használaton kívül)
Adatoldalak esetén ez a szám egyenértékű a sorok számával.
kísértetrekordok_száma smallint A lapon szellemként megjelölt rekordok száma
A szellemes rekord olyan rekord, amely törlésre lett megjelölve, de még nem lett eltávolítva.
szabad_bájtok smallint Az oldalon található szabad bájtok száma
szabad_adat_eltolás int Szabad terület eltolása az adatterület végén
reserved_bytes smallint Az összes tranzakció által fenntartott szabad bájtok száma (ha halom)
Szellemes sorok száma (ha indexlevél)
reserved_bytes_by_xdes_id smallint A m_xdesID által hozzájárult tér a m_reservedCnt-hez
Csak hibakeresési célokra
xdes_id nvarchar(64) A m_reserved által hozzájárult legutóbbi tranzakció
Csak hibakeresési célokra

Megjegyzések

A sys.dm_db_page_info dinamikus felügyeleti függvény olyan információkat ad vissza, mint page_ida , file_id, index_id, object_idstb., amelyek egy oldalfejlécben találhatók. Ez az információ hasznos a különböző teljesítménybeli hibák (zárolási és reteszelési) és sérülési problémák hibaelhárításához és hibakereséséhez.

sys.dm_db_page_info az utasítás helyett DBCC PAGE sok esetben használható, de csak az oldalfejléc adatait adja vissza, nem az oldal törzsét. DBCC PAGE továbbra is szükség lesz az olyan használati esetekre, amikor a lap teljes tartalmára szükség van.

Használat más DMV-kkel együtt

Az egyik fontos használati eset sys.dm_db_page_info összekapcsolása más DMV-kkel, amelyek lapinformációkat tárnak fel. A használati eset megkönnyítése érdekében hozzáadtunk egy új, úgynevezett page_resource oszlopot, amely 8 bájtos hexadecimális formátumban teszi elérhetővé az oldaladatokat. Ezt az oszlopot hozzáadták sys.dm_exec_requests és sys.sysprocesses-hez, és a jövőben szükség szerint hozzá fogják adni a többi DMV-hez.

Egy új függvény, sys.fn_PageResCracker, bemenetként kapja meg a page_resource-t, és egyetlen sort ad ki, amely tartalmazza a következőt: database_id, file_id és page_id. A függvény használható az sys.dm_exec_requests, sys.sysprocesses és sys.dm_db_page_info közötti illesztések megkönnyítésére.

Permissions

Az adatbázis engedélyére VIEW DATABASE STATE van szükség.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

A VIEW DATABASE PERFORMANCE STATE engedélyre van szüksége az adatbázisban.

Példák

A. A lap összes tulajdonságának megjelenítése

Az alábbi lekérdezés egy sort ad vissza az összes database_id, file_id, page_id kombinációjára vonatkozó lapinformációkkal, alapértelmezett módban ('LIMITED').

SELECT *
FROM sys.dm_db_page_info (5, 1, 15, DEFAULT);

B. A sys.dm_db_page_info használata más DMV-kkel

Az alábbi lekérdezés egy sort wait_resource ad vissza, sys.dm_exec_requests ha a sor nem null értéket tartalmaz page_resource

SELECT page_info.*
FROM sys.dm_exec_requests AS d
CROSS APPLY sys.fn_PageResCracker(d.page_resource) AS r
CROSS APPLY sys.dm_db_page_info(r.db_id, r.file_id, r.page_id, 'LIMITED') AS page_info;

Lásd még