Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2019 (15.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
SQL Database i Microsoft Fabric
Returnerar information om en sida i en databas. Funktionen returnerar en rad som innehåller rubrikinformationen från sidan, inklusive object_id, index_idoch partition_id. Den här funktionen ersätter behovet av att använda DBCC PAGE i de flesta fall.
Anmärkning
sys.dm_db_page_info stöds för närvarande endast i SQL Server 2019 (15.x) och senare.
Syntax
sys.dm_db_page_info ( DatabaseId , FileId , PageId , Mode )
Arguments
DatabaseId | NULL | DEFAULTVÄRDE
Databasens ID. DatabaseId är smallint. Giltiga indata är ID-numret för en databas. Standardvärdet är NULL, men att skicka ett NULL-värde för den här parametern resulterar i ett fel.
FileId | NULL | DEFAULT
ID:t för filen. FileId är int. Giltiga indata är ID-numret för en fil i databasen som anges av DatabaseId. Standardvärdet är NULL, men att skicka ett NULL-värde för den här parametern resulterar i ett fel.
PageId | NULL | DEFAULT
Sidans ID. PageId är int. Giltiga indata är ID-numret för en sida i filen som anges av FileId. Standardvärdet är NULL, men att skicka ett NULL-värde för den här parametern resulterar i ett fel.
Läge | NULL | DEFAULT
Avgör detaljnivån i funktionens utdata.
'LIMITED' returnerar NULL-värden för alla beskrivningskolumner, "DETAILED" fyller i beskrivningskolumner.
DEFAULT är 'LIMITED'.
Tabellen returneras
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| database_id | int | Databas-ID. 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 | Fil-ID |
| page_id | int | Sid-ID |
| page_header_version | int | Sidhuvudversion |
| sidtyp | int | Sidtyp |
| sidtypbeskrivning | nvarchar(64) | Beskrivning av sidtypen |
| page_type_flag_bits | nvarchar(64) | Skriv flaggbitar i sidhuvudet |
| page_type_flag_bits_desc | nvarchar(64) | Ange beskrivning av flaggbitar i sidhuvud |
| page_flag_bits | nvarchar(64) | Flaggbitar i sidhuvud |
| page_flag_bits_desc | nvarchar(256) | Beskrivning av flaggbitar i sidhuvud |
| page_lsn | nvarchar(64) | Loggsekvensnummer/tidsstämpel |
| sidnivå | int | Sidans nivå i index (löv = 0) |
| object_id | int | ID för objektet som äger sidan |
| index_id | int | ID för indexet (0 för högdatablad) |
| partition_id | bigint | ID för partitionen |
| alloc_enhets_id | bigint | ID för allokeringsenheten |
| är_krypterad | bit | Bit för att ange om sidan är krypterad eller inte |
| har_kontrollsumma | bit | Bit för att ange om sidan har ett kontrollsummavärde eller inte |
| kontrollsumma | int | Lagrar kontrollsummavärdet som används för att identifiera skadade data |
| is_iam_pg | bit | Bit för att ange om sidan är en IAM-sida eller inte |
| is_mixed_ext | bit | Bit som anger om den allokeras i blandad omfattning |
| has_ghost_records | bit | Bit som indikerar om sidan innehåller spökposter En spökpost är en post som har markerats för borttagning men som ännu inte har tagits bort. |
| har_versionsposter | bit | Bit för att ange om sidan innehåller versionsposter som används för accelererad databasåterställning |
| pfs_page_id | int | Sid-ID för motsvarande PFS-sida |
| pfs_is_allocated | bit | Bit för att ange om sidan är markerad som allokerad på motsvarande PFS-sida |
| pfs_alloc_percent | int | Allokeringsprocent enligt motsvarande PFS-byte |
| pfs_status | nvarchar(64) | PFS-byte |
| pfs_status_beskrivning | nvarchar(64) | Beskrivning av PFS-bytet |
| gam_page_id | int | Sid-ID för motsvarande GAM-sida |
| gam_status | bit | Bit som anger om allokeras i GAM |
| spelstatus_beskrivning | nvarchar(64) | Beskrivning av GAM-statusbiten |
| sgam_page_id | int | Sid-ID för motsvarande SGAM-sida |
| sgam_status | bit | Bit som anger om det är allokerat i SGAM |
| sgam_status_desc | nvarchar(64) | Beskrivning av SGAM-statusbiten |
| diff_map_page_id | int | Sid-ID för motsvarande differentiella bitmappssida |
| diff_status | bit | Bit för att ange om diff-status har ändrats |
| diff_status_desc | nvarchar(64) | Beskrivning av diff-statusbiten |
| ml_map_page_id | int | Sid-ID för motsvarande bitmappssida för minimal loggning |
| ml_status | bit | Bit för att ange om sidan är minimalt loggad |
| ml_status_desc | nvarchar(64) | Beskrivning av den minimala loggningsstatusbiten |
| prev_page_file_id | smallint | Fil-ID för föregående sida |
| prev_page_page_id | int | Sid-ID för föregående sida |
| Nästa_sida_fil_id | smallint | Fil-ID för nästa sida |
| next_page_page_id | int | Sid-ID för nästa sida |
| fixed_length | smallint | Längden på rader med fast storlek |
| slotantal | smallint | Totalt antal platser (används och används inte) För en datasida motsvarar det här talet antalet rader. |
| ghost_rec_count | smallint | Antal poster som markerats som spöken på sidan En spökpost är en post som har markerats för borttagning men som ännu inte har tagits bort. |
| free_bytes | smallint | Antal lediga byte på sidan |
| free_data_offset | int | Förskjutning av ledigt utrymme i slutet av dataområdet |
| reserved_bytes | smallint | Antal fria byte reserverade av samtliga transaktioner (om heap) Antal spökrader (om indexblad) |
| reserved_bytes_by_xdes_id | smallint | Utrymme tilldelat av m_xdesID till m_reservedCnt Endast i felsökningssyfte |
| xdes_id | nvarchar(64) | Den senaste transaktionen som har bidragits av m_reserved Endast i felsökningssyfte |
Anmärkningar
Funktionen sys.dm_db_page_info för dynamisk hantering returnerar information som page_id, file_id, index_id, object_idoch så vidare, som finns i ett sidhuvud. Den här informationen är användbar för att felsöka och hantera olika prestandaproblem (låskonflikter och spärrkonkurrens) samt korruptionsproblem.
sys.dm_db_page_info kan användas i stället för -instruktionen DBCC PAGE i många fall, men den returnerar endast sidhuvudinformationen, inte sidans brödtext.
DBCC PAGE behövs fortfarande för användningsfall där hela innehållet på sidan krävs.
Använd tillsammans med andra DMV:er
Ett av de viktiga användningsfallen med sys.dm_db_page_info är att kombinera det med andra DMV:er som exponerar sidinformation. För att underlätta det här användningsfallet har en ny kolumn med namnet page_resource lagts till som visar sidinformation i ett hexadecimalt format med 8 byte. Den här kolumnen har lagts till i sys.dm_exec_requests och sys.sysprocesses och kommer att läggas till i andra DMV:er i framtiden efter behov.
En ny funktion, sys.fn_PageResCracker, tar page_resource som indata och matar ut en enskild rad som innehåller database_id, file_id och page_id. Den här funktionen kan sedan användas för att underlätta kopplingar mellan sys.dm_exec_requests eller sys.sysprocesses och sys.dm_db_page_info.
Permissions
Kräver behörigheten VIEW DATABASE STATE i databasen.
Behörigheter för SQL Server 2022 och senare
Kräver behörigheten VISA DATABASPRESTANDATILLSTÅND för databasen.
Examples
A. Visa alla egenskaper för en sida
Följande fråga returnerar en rad med all sidinformation för en given database_id, file_id, page_id kombination med standardläge ('LIMITED')
SELECT *
FROM sys.dm_db_page_info (5, 1, 15, DEFAULT);
B. Använd sys.dm_db_page_info med andra DMV:er
Följande fråga returnerar en rad per wait_resource exponerad av sys.dm_exec_requests när raden innehåller en icke-null 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;