Sdílet prostřednictvím


sys.dm_db_page_info (Transact-SQL)

Platí pro: SQL Server 2019 (15.x) a novější verze Databáze Azure SQL DatabaseAzure SQL Managed InstanceSQL v Microsoft Fabric

Vrátí informace o stránce v databázi. Funkce vrátí jeden řádek, který obsahuje informace záhlaví ze stránky, včetně object_id, index_ida partition_id. Tato funkce nahrazuje potřebu používat DBCC PAGE ve většině případů.

Poznámka:

sys.dm_db_page_info je aktuálně podporován pouze v SQL Serveru 2019 (15.x) a novějším.

Syntaxe

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

Arguments

Id databáze | NULL | DEFAULT

ID databáze. DatabaseId je smallint. Platným vstupem je číslo ID databáze. Výchozí hodnota je NULL, ale odeslání hodnoty NULL pro tento parametr způsobí chybu.

ID souboru | NULL | VÝCHOZÍ

ID souboru. FileId je int. Platný vstup je číslo ID souboru v databázi určené Id databáze. Výchozí hodnota je NULL, ale odeslání hodnoty NULL pro tento parametr způsobí chybu.

Id stránky | NULL | DEFAULT

ID stránky. PageId je int. Platným vstupem je číslo ID stránky v souboru určeném Id souboru. Výchozí hodnota je NULL, ale odeslání hodnoty NULL pro tento parametr způsobí chybu.

Režim | NULL | VÝCHOZÍ

Určuje úroveň podrobností ve výstupu funkce. 'LIMITED' vrátí hodnoty NULL pro všechny sloupce popisu, "DETAILED" naplní sloupce popisu. DEFAULT je 'LIMITED'.

Vrácená tabulka

Název sloupce Datový typ Description
database_id int ID databáze.

Ve službě Azure SQL Database jsou hodnoty jedinečné v rámci jedné databáze nebo elastického fondu, ale ne v rámci logického serveru.
ID souboru int ID souboru
page_id int ID stránky
verze_záhlaví_stránky int Verze záhlaví stránky
typ_stránky int Typ stránky
page_type_desc nvarchar(64) Popis typu stránky
bity_příznaku_typu_stránky nvarchar(64) Bity příznaku typu v záhlaví stránky
příznaky_bitů_typu_stránky_poznámka nvarchar(64) Popis bitů příznaku typu v záhlaví stránky
page_flag_bits (bity příznaku stránky) nvarchar(64) Bity příznaku v záhlaví stránky
popis bitů příznaku stránky nvarchar(256) Popis bitů příznaku v záhlaví stránky
page_lsn nvarchar(64) Pořadové číslo protokolu / časové razítko
úroveň stránky int Úroveň stránky v indexu (list = 0)
object_id int ID objektu, který vlastní stránku
index_id int ID indexu (0 pro datové stránky haldy)
ID oddílu bigint ID oddílu
identifikátor_allocační_jednotky (alloc_unit_id) bigint ID alokační jednotky
is_encrypted bit Bit označující, jestli je stránka zašifrovaná nebo ne
má kontrolní součet bit Bit označující, jestli má stránka hodnotu kontrolního součtu
kontrolní součet int Uloží hodnotu kontrolního součtu, která se používá k detekci poškození dat.
is_iam_pg bit Bit označující, jestli je stránka IAM nebo ne
is_mixed_ext bit Bit označující, jestli je přiděleno ve smíšeném rozsahu
has_ghost_records bit Bit označující, jestli stránka obsahuje záznamy duchů
Záznam označený k odstranění je záznam, který byl označen k odstranění, ale ještě nebyl odstraněn.
má_záznamy_verzí bit Bit označující, jestli stránka obsahuje záznamy verzí používané pro akcelerované obnovení databáze
pfs_page_id int ID stránky odpovídající stránky PFS
pfs_is_allocated bit Bit označující, jestli je stránka označená jako přidělená na odpovídající stránce PFS
pfs_alloc_percent int Procento přidělení podle odpovídajícího bajtu PFS
pfs_status nvarchar(64) Bajt PFS
pfs_status_desc nvarchar(64) Popis bajtu PFS
gam_page_id int ID stránky odpovídající stránce GAM
gam_status bit Bit označující, jestli je přidělen v GAM
popis_stavu_hry nvarchar(64) Popis bitu stavu GAM
sgam_page_id int ID stránky odpovídající SGAM stránce
sgam_status bit Bit označující, zda je přidělen v SGAM
sgam_status_desc nvarchar(64) Popis statusového bitu SGAM
diff_map_page_id int ID stránky odpovídající rozdílové bitové mapy
stav rozdílu bit Bit označující, zda se změnil stav rozdílu
popis stavu rozdílu nvarchar(64) Popis bitu stavu rozdílu
ml_map_page_id int ID stránky odpovídající minimální rastrové stránky protokolování
ml_status bit Bit označující, jestli je stránka minimálně zaprotokolovaná
ml_status_desc nvarchar(64) Popis minimálního bitu stavu protokolování
prev_page_file_id smallint ID předchozího stránkového souboru
prev_page_page_id int ID předchozí stránky
next_page_file_id smallint ID souboru stránkování dálší stránka
next_page_page_id int ID další stránky
pevná_délka smallint Délka řádků s pevnou velikostí
počet slotů smallint Celkový počet slotů (využitých a nepoužitých)
U datové stránky je toto číslo ekvivalentní počtu řádků.
ghost_rec_count smallint Počet záznamů označených jako neaktivní na stránce
Záznam označený k odstranění je záznam, který byl označen k odstranění, ale ještě nebyl odstraněn.
free_bytes smallint Počet volných bajtů na stránce
volný_offset_datových_poctů int Posun volného místa na konci datové oblasti
reserved_bytes smallint Počet bajtů volných a rezervovaných všemi transakcemi (pokud jde o haldu)
Počet skrytých řádků (pokud jde o list indexu)
reserved_bytes_by_xdes_id smallint Prostor přidělený m_xdesID do m_reservedCnt
Pouze pro účely ladění
xdes_id nvarchar(64) Nejnovější transakci přispěl m_reserved
Pouze pro účely ladění

Poznámky

Funkce sys.dm_db_page_info dynamické správy vrací informace, například page_id, file_id, index_idobject_id, atd., které jsou přítomné v záhlaví stránky. Tyto informace jsou užitečné pro odstraňování problémů a ladění různých problémů s výkonem (kolize zámků a západek) a poškození dat.

sys.dm_db_page_info lze použít místo DBCC PAGE příkazu v mnoha případech, ale vrací pouze informace o záhlaví stránky, nikoli text stránky. DBCC PAGE bude i nadále potřeba pro případy použití, kdy se vyžaduje celý obsah stránky.

Použijte ve spojení s jinými DMV (zobrazeními dynamické správy)

Jedním z důležitých případů použití sys.dm_db_page_info je jeho spojení s jinými DMVs, které poskytují informace o stránce. Pro usnadnění tohoto případu použití byl přidán nový sloupec page_resource , který zveřejňuje informace o stránce v šestnáctkovém formátu 8 bajtů. Tento sloupec byl přidán do sys.dm_exec_requests a sys.sysprocesses a v budoucnu bude přidán do dalších zobrazení dynamické správy podle potřeby.

Nová funkce přebírá sys.fn_PageResCrackerpage_resource jako vstup a vypíše jeden řádek, který obsahuje database_id, file_id a page_id. Tuto funkci pak lze použít k usnadnění spojení mezi sys.dm_exec_requests nebo sys.sysprocesses a sys.dm_db_page_info.

Povolení

VIEW DATABASE STATE Vyžaduje oprávnění v databázi.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU DATABÁZE pro databázi.

Examples

A. Zobrazení všech vlastností stránky

Následující dotaz vrátí jeden řádek se všemi informacemi o stránce pro danou database_id, file_idkombinaci page_id s výchozím režimem ('LIMITED')

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

B. Použití sys.dm_db_page_info s dalšími DMV

Následující dotaz vrátí jeden řádek pro každé wait_resource vystavené sys.dm_exec_requests, pokud řádek obsahuje nenulovou hodnotu 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;

Viz také