Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2019 (15.x) en latere versies
Van Azure SQL Database
Azure SQL Managed Instance
SQL Database in Microsoft Fabric
Retourneert informatie over een pagina in een database. De functie retourneert één rij die de koptekstinformatie van de pagina bevat, inclusief de object_id, index_iden partition_id. Deze functie vervangt de noodzaak om in de meeste gevallen te gebruiken DBCC PAGE .
Opmerking
sys.dm_db_page_info wordt momenteel alleen ondersteund in SQL Server 2019 (15.x) en hoger.
Syntaxis
sys.dm_db_page_info ( DatabaseId , FileId , PageId , Mode )
Arguments
DatabaseId | NULL | VERSTEK
De id van de database. DatabaseId is smallint. Geldige invoer is het id-nummer van een database. De standaardwaarde is NULL, maar het verzenden van een NULL-waarde voor deze parameter resulteert in een fout.
FileId | NULL | VERSTEK
De id van het bestand. FileId is int. Geldige invoer is het id-nummer van een bestand in de database die is opgegeven door DatabaseId. De standaardwaarde is NULL, maar het verzenden van een NULL-waarde voor deze parameter resulteert in een fout.
PageId | NULL | DEFAULT
De id van de pagina. PageId is int. Geldige invoer is het id-nummer van een pagina in het bestand dat is opgegeven door FileId. De standaardwaarde is NULL, maar het verzenden van een NULL-waarde voor deze parameter resulteert in een fout.
Modus | NULL | VERSTEK
Bepaalt het detailniveau in de uitvoer van de functie.
'LIMITED' retourneert NULL-waarden voor alle beschrijvingskolommen, 'GEDETAILLEERD' vult beschrijvingskolommen.
DEFAULT is 'LIMITED'.
Tabel geretourneerd
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| database_id | int | Database-id. In Azure SQL Database zijn de waarden uniek binnen één database of een elastische pool, maar niet binnen een logische server. |
| file_id | int | Bestands-id |
| page_id | int | Pagina-id |
| pagina_koptekst_versie | int | Versie van paginakoptekst |
| page_type | int | Paginatype |
| page_type_desc | nvarchar(64) | Beschrijving van het paginatype |
| page_type_flag_bits | nvarchar(64) | Vlag-bits in paginakoptekst typen |
| page_type_flag_bits_beschrijving | nvarchar(64) | Beschrijving van vlag-bits typen in paginakoptekst |
| page_flag_bits | nvarchar(64) | Bits markeren in paginakoptekst |
| pagina_vlag_bits_beschrijving | nvarchar(256) | Beschrijving van vlag-bits in paginakoptekst |
| page_lsn | nvarchar(64) | Logboekreeksnummer/tijdstempel |
| paginaniveau | int | Niveau van de pagina in index (leaf = 0) |
| object_id | int | Id van het object dat eigenaar is van de pagina |
| index_id | int | Id van de index (0 voor heap-gegevenspagina's) |
| partition_id | bigint | Id van de partitie |
| alloc_unit_id | bigint | Id van de toewijzingseenheid |
| is_encrypted | bit | Bit om aan te geven of de pagina al dan niet is versleuteld |
| has_checksum | bit | Bit om aan te geven of de pagina een controlesomwaarde heeft |
| checksum | int | Slaat de controlesomwaarde op die wordt gebruikt om beschadiging van gegevens te detecteren |
| is_iam_pg | bit | Bit om aan te geven of de pagina een IAM-pagina is |
| is_mixed_ext | bit | Bit om aan te geven of deze in een gemengde mate is toegewezen |
| has_ghost_records | bit | Bit om aan te geven of de pagina spookrecords bevat Een spookrecord is een record dat is gemarkeerd voor verwijdering, maar nog moet worden weggehaald. |
| has_version_records | bit | Bit om aan te geven of de pagina versierecords bevat die worden gebruikt voor versneld databaseherstel |
| pfs_page_id | int | Pagina-id van overeenkomende PFS-pagina |
| pfs_is_allocated | bit | Bit om aan te geven of de pagina is gemarkeerd als toegewezen op de bijbehorende PFS-pagina |
| pfs_alloc_percent | int | Toewijzingspercentage zoals aangegeven door de bijbehorende PFS-byte |
| pfs_status | nvarchar(64) | PFS-byte |
| pfs_status_desc (statusbeschrijving) | nvarchar(64) | Beschrijving van de PFS-byte |
| gam_page_id | int | Pagina-id van de bijbehorende GAM-pagina |
| gam_status | bit | Bit om aan te geven of het in GAM wordt toegewezen |
| gam_status_beschrijving | nvarchar(64) | Beschrijving van de GAM-status-bit |
| sgam_page_id | int | Pagina-id van de bijbehorende SGAM-pagina |
| sgam_status | bit | Bit om aan te geven of het is toegewezen in SGAM |
| sgam_status_desc | nvarchar(64) | Beschrijving van de SGAM-statusbit |
| diff_map_page_id | int | Pagina-id van de bijbehorende differentiële bitmappagina |
| statusverschil | bit | Bit om aan te geven of de diff-status is gewijzigd |
| diff_status_desc | nvarchar(64) | Beschrijving van de diff-statusbit |
| ml_map_page_id | int | Pagina-id van de bijbehorende bitmappagina voor minimale logboekregistratie |
| ml_status | bit | Bit om aan te geven of de pagina minimaal gelogd is |
| ml_status_desc | nvarchar(64) | Beschrijving van de minimale logstatusbit |
| prev_page_file_id | smallint | ID van vorig paginabestand |
| prev_page_page_id | int | Pagina-id vorige pagina |
| next_page_file_id | smallint | Bestands-id van volgende pagina |
| volgende_pagina_pagina_id | int | Volgende pagina, pagina-ID |
| fixed_length | smallint | Lengte van rijen met vaste grootte |
| aantal_sleuven | smallint | Totaal aantal slots (gebruikt en ongebruikt) Voor een gegevenspagina is dit getal gelijk aan het aantal rijen. |
| ghost_rec_count | smallint | Aantal records gemarkeerd als ghost op de pagina Een spookrecord is een record dat is gemarkeerd voor verwijdering, maar nog moet worden weggehaald. |
| free_bytes | smallint | Aantal beschikbare bytes op de pagina |
| free_data_offset | int | Verschuiving van vrije ruimte aan het einde van het gegevensgebied |
| reserved_bytes | smallint | Aantal beschikbare bytes gereserveerd door alle transacties (indien van toepassing op heap) Aantal vervaagde rijen (als bladnode in index) |
| reserved_bytes_by_xdes_id | smallint | Ruimte bijgedragen door m_xdesID aan m_reservedCnt Alleen voor foutopsporingsdoeleinden |
| xdes_id | nvarchar(64) | Meest recente transactie bijgedragen door m_reserved Alleen voor foutopsporingsdoeleinden |
Opmerkingen
De dynamische beheerfunctie sys.dm_db_page_info retourneert informatie zoals page_id, file_id, index_id, object_id enzovoort, die aanwezig is in een paginakoptekst. Deze informatie is handig voor het oplossen en debuggen van verschillende prestatie- (slot- en latch-conflicten) en corruptiekwesties.
sys.dm_db_page_info kan in veel gevallen worden gebruikt in plaats van de DBCC PAGE instructie, maar retourneert alleen de informatie over de paginakoptekst, niet de hoofdtekst van de pagina.
DBCC PAGE is nog steeds nodig voor gebruiksvoorbeelden waarbij de volledige inhoud van de pagina vereist is.
Gebruiken in combinatie met andere DMV's
Een van de belangrijke use cases sys.dm_db_page_info is om deze te koppelen aan andere DMV's die paginagegevens beschikbaar maken. Ter ondersteuning van deze use case is een nieuwe kolom page_resource toegevoegd die paginagegevens in een hexadecimale indeling van 8 bytes weergeeft. Deze kolom is toegevoegd aan sys.dm_exec_requests en sys.sysprocesses en zal indien nodig in de toekomst worden toegevoegd aan andere DMV's.
Een nieuwe functie, sys.fn_PageResCracker, neemt de page_resource als invoer en geeft één rij met database_id, file_id en page_id als uitvoer. Deze functie kan vervolgens worden gebruikt om koppelingen tussen sys.dm_exec_requests of sys.sysprocesses en sys.dm_db_page_info te vergemakkelijken.
Permissions
Hiervoor is de VIEW DATABASE STATE machtiging in de database vereist.
Machtigingen voor SQL Server 2022 en hoger
Hiervoor is de machtiging VIEW DATABASE PERFORMANCE STATE vereist voor de database.
Voorbeelden
Eén. Alle eigenschappen van een pagina weergeven
De volgende query retourneert één rij met alle paginagegevens voor een bepaalde database_id, file_idcombinatie page_id met de standaardmodus ('BEPERKT')
SELECT *
FROM sys.dm_db_page_info (5, 1, 15, DEFAULT);
B. Sys.dm_db_page_info gebruiken met andere DMVs
De volgende query retourneert één rij per wait_resource dat door sys.dm_exec_requests wordt blootgesteld wanneer de rij een niet-null-waarde van page_resource bevat.
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;