Udostępnij za pomocą


sys.dm_db_page_info (Transact-SQL)

Dotyczy: SQL Server 2019 (15.x) i nowsze wersje bazy danychSQL Sql Database azure SQLDatabasew usłudze Microsoft Fabric

Zwraca informacje o stronie w bazie danych. Funkcja zwraca jeden wiersz zawierający informacje nagłówka ze strony, w tym object_idindex_id, i partition_id. Ta funkcja zastępuje potrzebę użycia DBCC PAGE w większości przypadków.

Uwaga / Notatka

sys.dm_db_page_info Program jest obecnie obsługiwany tylko w programie SQL Server 2019 (15.x) i nowszych wersjach.

Składnia

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

Arguments

DatabaseId | NULL | DOMYŚLNY

Identyfikator bazy danych. DatabaseId jest typu smallint. Prawidłowe dane wejściowe to identyfikator bazy danych. Wartość domyślna to NULL, jednak wysłanie wartości NULL dla tego parametru spowoduje wystąpienie błędu.

FileId | NULL | DOMYŚLNY

Identyfikator pliku. FileId jest int. Prawidłowe dane wejściowe to identyfikator pliku w bazie danych określonej przez databaseId. Wartość domyślna to NULL, jednak wysłanie wartości NULL dla tego parametru spowoduje wystąpienie błędu.

PageId | NULL | DOMYŚLNY

Identyfikator strony. PageId jest int. Prawidłowe dane wejściowe to numer identyfikacyjny strony w pliku określonym przez FileId. Wartość domyślna to NULL, jednak wysłanie wartości NULL dla tego parametru spowoduje wystąpienie błędu.

Tryb | NULL | DOMYŚLNY

Określa poziom szczegółowości w danych wyjściowych funkcji. 'LIMITED' Funkcja zwróci wartości NULL dla wszystkich kolumn opisu, "SZCZEGÓŁOWE" wypełni kolumny opisu. Parametr DEFAULT ma wartość 'LIMITED'.

Zwrócona tabela

Nazwa kolumny Typ danych Description
id_bazy_danych int Identyfikator bazy danych.

W usłudze Azure SQL Database wartości są unikatowe w ramach pojedynczej bazy danych lub elastycznej puli, ale nie w obrębie serwera logicznego.
identyfikator_pliku int Identyfikator pliku
page_id int Identyfikator strony
nagłówek_strony_wersja int Wersja nagłówka strony
page_type int Typ strony
opis_typu_strony nvarchar(64) Opis typu strony
page_type_flag_bits nvarchar(64) Wpisz bity flagi w nagłówku strony
page_type_flag_bits_opis_bajtów nvarchar(64) Opis bitów flagi typu w nagłówku strony
page_flag_bits nvarchar(64) Flaga bitów w nagłówku strony
opis_bajtów_flagi_strony nvarchar(256) Opis bitów flagi w nagłówku strony
page_lsn nvarchar(64) Numer sekwencji dziennika/znacznik czasu
poziom_strony int Poziom strony w indeksie (liść = 0)
object_id int Identyfikator obiektu, który jest właścicielem strony
index_id int Identyfikator indeksu (0 dla stron danych sterty)
partition_id bigint Identyfikator partycji
identyfikator_jednostki_przydziału bigint Identyfikator jednostki alokacji
jest_szyfrowane bit Bit wskazujący, czy strona jest zaszyfrowana
ma_sumę_kontrolną bit Bit wskazujący, czy strona posiada wartość sumy kontrolnej
suma kontrolna int Przechowuje wartość sumy kontrolnej, która jest używana do wykrywania uszkodzenia danych
is_iam_pg bit Bit wskazujący, czy strona jest stroną IAM
is_mixed_ext bit Bit wskazujący, czy przydzielono w zakresie mieszanym
has_ghost_records bit Bit wskazujący, czy strona zawiera rekordy duchów
Ukryty rekord to taki, który został przeznaczony do usunięcia, ale nie został jeszcze usunięty.
has_version_records bit Bit wskazujący, czy strona zawiera rekordy wersji używane do przyspieszonego odzyskiwania bazy danych
pfs_page_id int Identyfikator strony odpowiadającej stronie PFS
pfs_is_allocated bit Bit wskazujący, czy strona jest zaznaczona jako przydzielona na odpowiedniej stronie PFS
pfs_alloc_percent int Procent alokacji wskazywany przez odpowiedni bajt PFS
pfs_status nvarchar(64) Bajt PFS
pfs_status_desc nvarchar(64) Opis bajtu PFS
gam_page_id int Identyfikator odpowiedniej strony GAM
gam_status bit Bit wskazujący, czy przydzielono w GAM
opis stanu gam nvarchar(64) Opis bitu stanu GAM
sgam_page_id int Identyfikator odpowiedniej strony SGAM
sgam_status bit Bit wskazujący, czy został przydzielony w SGAM
sgam_status_desc nvarchar(64) Opis bitu stanu SGAM
diff_map_page_id int Identyfikator strony odpowiedniej strony różnicowej mapy bitowej
diff_status bit Bit wskazujący, czy status różnicy jest zmieniony
diff_status_desc nvarchar(64) Opis bitu stanu różnicy
ml_map_page_id int Identyfikator strony odpowiadającej minimalnej strony mapy bitowej rejestrowania
ml_status bit Bit wskazujący, czy strona jest minimalnie rejestrowana
ml_status_desc nvarchar(64) Opis minimalnego bitu stanu rejestrowania
poprzednia_strona_id_pliku smallint Identyfikator poprzedniego pliku strony
poprzednia_strona_id_strony int Identyfikator poprzedniej strony
identyfikator_pliku_następnej_strony smallint Identyfikator pliku następnej strony
next_page_page_id int Identyfikator strony następnej
stała_długość smallint Długość wierszy o stałym rozmiarze
liczba_slotów smallint Całkowita liczba miejsc (używanych i nieużywanych)
Dla strony danych ta liczba jest równoważna liczbie wierszy.
ghost_rec_count smallint Liczba rekordów oznaczonych jako tymczasowe na stronie
Ukryty rekord to taki, który został przeznaczony do usunięcia, ale nie został jeszcze usunięty.
free_bytes smallint Liczba wolnych bajtów na stronie
free_data_offset int Przesunięcie wolnego miejsca na końcu obszaru danych
zarezerwowane_bajty smallint Liczba wolnych bajtów zarezerwowanych przez wszystkie transakcje (jeśli sterta)
Liczba wierszy upiornych (jeśli liść indeksu)
reserved_bytes_by_xdes_id smallint Przydzielona przestrzeń przez m_xdesID do m_reservedCnt
Tylko do celów debugowania
xdes_id nvarchar(64) Najnowsza transakcja wniesiona przez m_reserved
Tylko do celów debugowania

Uwagi

Funkcja sys.dm_db_page_info dynamicznego zarządzania zwraca informacje, takie jak page_id, , file_idindex_id, object_idi tak dalej, które znajdują się w nagłówku strony. Te informacje są przydatne podczas rozwiązywania problemów i debugowania różnych problemów z wydajnością (blokowanie i zatrzasanie) oraz uszkodzeniem.

sys.dm_db_page_info można użyć zamiast instrukcji DBCC PAGE w wielu przypadkach, ale zwraca tylko informacje nagłówka strony, a nie treść strony. DBCC PAGE będą nadal potrzebne w przypadkach użycia, w których wymagana jest cała zawartość strony.

Używanie w połączeniu z innymi widokami DMV

Jednym z ważnych przypadków użycia sys.dm_db_page_info jest jego połączenie z innymi DMV, które ujawniają informacje o stronie. Aby ułatwić ten przypadek użycia, dodano nową kolumnę o nazwie page_resource , która uwidacznia informacje o stronie w formacie szesnastkowym 8 bajtów. Ta kolumna została dodana do sys.dm_exec_requests i sys.sysprocesses, i będzie także dodana do innych widoków DMV w przyszłości, zgodnie z potrzebami.

Nowa funkcja sys.fn_PageResCracker, przyjmuje page_resource jako dane wejściowe i wyjściowe pojedynczy wiersz, który zawiera database_id, file_id i page_id. Tej funkcji można następnie użyć do ułatwienia sprzężeń między sys.dm_exec_requests lub sys.sysprocesses i sys.dm_db_page_info.

Permissions

Wymaga VIEW DATABASE STATE uprawnień w bazie danych.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI BAZY DANYCH w bazie danych.

Przykłady

A. Wyświetlanie wszystkich właściwości strony

Następujące zapytanie zwraca jeden wiersz ze wszystkimi informacjami o stronie dla danego database_id, file_id, page_id w kombinacji z trybem domyślnym ('LIMITED').

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

B. Użyj sys.dm_db_page_info z innymi widokami dynamicznego zarządzania (DMV)

Następujące zapytanie zwraca jeden wiersz na wait_resource uwidoczniony przez sys.dm_exec_requests, gdy wiersz zawiera nie-nullową wartość 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;

Zobacz także