Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2019 (15.x) i nowsze wersje bazy danych
SQL Sql Database azure SQL
Database
w 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;