Aracılığıyla paylaş


sys.dm_db_page_info (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri Microsoft Fabric'teAzure SQL VeritabanıAzure SQL Yönetilen Örneği SQL veritabanı

Veritabanındaki bir sayfa hakkında bilgi döndürür. İşlev, , ve object_iddahil olmak üzere index_idpartition_idsayfadaki üst bilgi bilgilerini içeren bir satır döndürür. Bu işlev çoğu durumda kullanım DBCC PAGE gereksiniminin yerini alır.

Uyarı

sys.dm_db_page_info şu anda yalnızca SQL Server 2019 (15.x) ve sonraki sürümlerde desteklenmektedir.

Sözdizimi

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

Arguments

DatabaseId | NULL | TEMERRÜT

Veritabanının kimliği. DatabaseIdsmallint'tir. Geçerli giriş, veritabanının kimlik numarasıdır. Varsayılan değer NULL'dir, ancak bu parametre için NULL değeri gönderilmesi hataya neden olur.

FileId | NULL | TEMERRÜT

Dosyanın kimliği. FileIdis int. Geçerli giriş, DatabaseId tarafından belirtilen veritabanındaki bir dosyanın kimlik numarasıdır. Varsayılan değer NULL'dir, ancak bu parametre için NULL değeri gönderilmesi hataya neden olur.

PageId | NULL | TEMERRÜT

Sayfanın ID'si. PageIdint değeridir. Geçerli giriş, Dosya Kimliği tarafından belirtilen dosyadaki bir sayfanın kimlik numarasıdır. Varsayılan değer NULL'dir, ancak bu parametre için NULL değeri gönderilmesi hataya neden olur.

Mod | NULL | TEMERRÜT

İşlev çıkışındaki ayrıntı düzeyini belirler. 'LIMITED' tüm açıklama sütunları için NULL değerler döndürür; 'DETAILED' açıklama sütunlarını doldurur. DEFAULT, 'LIMITED''e eşittir.

Tablo geri getirildi

Sütun adı Veri türü Description
veritabanı_kimlik int Veritabanı Kimliği.

Azure SQL Veritabanı'nda değerler tek bir veritabanı veya elastik havuz içinde benzersizdir, ancak mantıksal sunucu içinde değildir.
dosya_kimlik int Dosya Kimliği
page_id int Sayfa Kimliği
sayfa_başlığı_sürüm int Sayfa üst bilgisi sürümü
sayfa_türü int Sayfa Türü
page_type_desc nvarchar(64) Sayfa türünün açıklaması
sayfa_tipi_bayrak_bitleri nvarchar(64) Sayfa üst bilgisinde Bayrak bitleri yazın
page_type_flag_bits_desc nvarchar(64) Sayfa üst bilgisinde bayrak bitleri açıklamasını yazın
sayfa_bayrak_bitleri nvarchar(64) Sayfa üst bilgisinde bayrak bitleri
sayfa_bayrak_bitleri_açıklaması nvarchar(256) Sayfa üst bilgisinde bayrak bitlerinin açıklaması
page_lsn nvarchar(64) Günlük seri numarası / zaman damgası
page_level int Dizindeki sayfanın seviyesi (yaprak = 0)
object_id int Sayfaya sahip olan nesnenin kimliği
index_id int İndeks kimliği (yığın veri sayfaları için 0)
partition_id bigint Bölümün kimliği
alloc_unit_id bigint Ayırma biriminin kimliği
şifrelenmiş_mi bit Sayfanın şifrelenip şifrelenmediğini belirten bit
has_checksum bit Sayfanın bir sağlama toplamı değerine sahip olup olmadığını belirten bit
sağlama toplamı int Veri bozulmasını algılamak için kullanılan sağlama toplamı değerini saklar.
is_iam_pg bit Sayfanın bir IAM sayfası olup olmadığını belirten bit
is_mixed_ext bit Karma bir ölçüde ayrılarak ayrılmadığını belirten bit
has_ghost_records bit Sayfanın hayalet kayıtları içerip içermediğini belirten bit
Silinmek üzere işaretlenmiş ancak henüz kaldırılmamış olan kayıt, gölge kayıt olarak adlandırılır.
has_version_records bit Sayfanın hızlandırılmış veritabanı kurtarma için kullanılan sürüm kayıtlarını içerip içermediğini belirten bit
pfs_page_id int İlgili PFS sayfasının Sayfa Kimliği
pfs_is_allocated bit Sayfanın ilgili PFS sayfasında ayrılmış olarak işaretlenip işaretlenmediğini belirten bit
pfs_alloc_percent int Karşılık gelen PFS baytının belirttiği şekilde ayırma yüzdesi
pfs_status nvarchar(64) PFS bayt
pfs_status_desc nvarchar(64) PFS baytının açıklaması
gam_page_id int İlgili GAM sayfasının Sayfa Kimliği
gam_status bit GAM'da ayrılmış olup olmadığını belirten bit
gam_status_desc nvarchar(64) GAM durum bitinin açıklaması
sgam_page_id int İlgili SGAM sayfasının Sayfa Kimliği
sgam_status bit SGAM'de ayrılmış olup olmadığını belirten bit
sgam_status_desc nvarchar(64) SGAM durum bitinin açıklaması
diff_map_page_id int Karşılık gelen diferansiyel bitmap sayfasının Sayfa Kimliği
diff_status bit Fark durumunun değiştirilip değiştirilmediğini belirten bit
fark_durumu_açıklaması nvarchar(64) Fark durumu bitinin açıklaması
ml_map_page_id int İlgili minimum günlük bit eşlem sayfasının Sayfa Kimliği
ml_status bit Sayfanın minimum düzeyde günlüğe kaydedilip kaydedilmediğini belirten bit
ml_durum_açıklaması nvarchar(64) Minimal kayıt durumu bitinin açıklaması
önceki_sayfa_dosya_kimliği smallint Önceki sayfa dosyası kimliği
önceki_sayfa_sayfa_kimliği int Önceki sayfa kimliği
next_page_file_id smallint Sonraki sayfa dosyası kimliği
next_page_page_id int Sonraki sayfa sayfa kimliği
sabit_uzunluk smallint Sabit boyutlu satırların uzunluğu
slot_count smallint Toplam yuva sayısı (kullanılan ve kullanılmayan)
Veri sayfası için bu sayı, satır sayısına eşdeğerdir.
hayalet_kayıt_sayı smallint Sayfadaki hayalet olarak işaretlenmiş kayıt sayısı
Hayaletli kayıt, silinmek üzere işaretlenmiş ancak henüz kaldırılmayan kayıttır.
boş_baytlar smallint Sayfadaki boş bayt sayısı
free_data_offset int Veri alanının sonundaki boş alanın uzaklığı
reserved_bytes smallint Tüm işlemler tarafından ayrılmış boş bayt sayısı (yığın ise)
Gölge satır sayısı (eğer dizin yaprağıysa)
reserved_bytes_by_xdes_id smallint m_xdesID tarafından m_reservedCnt'ye katkıda bulunulan alan
Yalnızca hata ayıklama amacıyla
xdes_id nvarchar(64) m_reserved katkıda bulunan en son işlem
Yalnızca hata ayıklama amacıyla

Açıklamalar

sys.dm_db_page_info Dinamik yönetim işlevi, sayfa üst bilgisinde bulunan page_id, file_id, index_id, object_id ve benzeri bilgileri döndürür. Bu bilgiler çeşitli performans (kilit ve mandal çekişmesi) ve bozulma sorunlarını gidermek ve hatalarını ayıklamak için yararlıdır.

sys.dm_db_page_info çoğu durumda deyiminin DBCC PAGE yerine kullanılabilir, ancak sayfanın gövdesini değil yalnızca sayfa üst bilgisi bilgilerini döndürür. DBCC PAGE sayfanın tüm içeriğinin gerekli olduğu kullanım örnekleri için gerekli olmaya devam edecektir.

Diğer DMV'lerle bir arada kullanın

sys.dm_db_page_info'nin önemli kullanım durumlarından biri, sayfa bilgilerini ortaya koyan diğer DMV'lerle birleştirmektir. Bu kullanım örneğini kolaylaştırmak için, sayfa bilgilerini 8 baytlık onaltılık biçimde kullanıma sunan adlı page_resource yeni bir sütun eklenmiştir. Bu sütun sys.dm_exec_requests ve sys.sysprocesses eklendi ve gelecekte gerektiğinde diğer DMV'lere de eklenecektir.

Yeni bir işlev, sys.fn_PageResCracker öğesini giriş olarak alır ve database_id, file_id ve page_id içeren tek bir satır üretir. Bu işlev daha sonra sys.dm_exec_requests veya sys.sysprocesses ile sys.dm_db_page_info arasındaki birleştirmeleri kolaylaştırmak için kullanılabilir.

Permissions

VIEW DATABASE STATE Veritabanında izin gerektirir.

SQL Server 2022 ve üzeri için izinler

Veritabanında VERITABANı PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Örnekler

A. Sayfanın tüm özelliklerini görüntüleme

Aşağıdaki sorgu, varsayılan mod ('LIMITED') ile belirli database_id, file_id, page_id kombinasyonu için tüm sayfa bilgilerini içeren bir satır döndürür.

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

B. Sys.dm_db_page_info'u diğer DMV'ler ile birlikte kullanma

Aşağıdaki sorgu, satır içerisinde null olmayan bir page_resource bulunduğunda, sys.dm_exec_requests tarafından sunulan her bir wait_resource için bir satır döndürür.

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;

Ayrıca bakınız