sys.dm_db_page_info (SQL Bertransaksi)
BERLAKU UNTUK:
SQL Server 2019 dan yang lebih baru
Azure SQL Database
Azure Synapse Analytics Analytics
Platform System (PDW)
Mengembalikan informasi tentang halaman dalam database. Fungsi mengembalikan satu baris yang berisi informasi header dari halaman, termasuk object_id, , index_iddan partition_id. Fungsi ini menggantikan kebutuhan untuk digunakan DBCC PAGE dalam banyak kasus.
Catatan
sys.dm_db_page_infosaat ini hanya didukung di SQL Server 2019 (15.x) dan yang lebih baru.
Sintaks
sys.dm_db_page_info ( DatabaseId, FileId, PageId, Mode )
Argumen
| DatabaseId | NULL DEFAULT
Adalah ID database. DatabaseId adalah smallint. Input yang valid adalah nomor ID database. Defaultnya adalah NULL, namun mengirim nilai NULL untuk parameter ini akan mengakibatkan kesalahan.
| FileId | NULL DEFAULT
Adalah ID file. FileId adalah int. Input yang valid adalah nomor ID file dalam database yang ditentukan oleh DatabaseId. Defaultnya adalah NULL, namun mengirim nilai NULL untuk parameter ini akan mengakibatkan kesalahan.
| PageId | NULL DEFAULT
Adalah ID halaman. PageId adalah int. Input yang valid adalah nomor ID halaman dalam file yang ditentukan oleh FileId. Defaultnya adalah NULL, namun mengirim nilai NULL untuk parameter ini akan mengakibatkan kesalahan.
Mode | | NULL DEFAULT
Menentukan tingkat detail dalam output fungsi. 'LIMITED' akan mengembalikan nilai NULL untuk semua kolom deskripsi, 'DETAILED' akan mengisi kolom deskripsi. DEFAULTnya adalah 'LIMITED.'
Tabel Dikembalikan
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
| database_id | int | ID Database |
| file_id | int | File ID |
| page_id | int | ID Halaman |
| page_header_version | int | Versi header halaman |
| page_type | int | Tipe Halaman |
| page_type_desc | nvarchar(64) | Deskripsi jenis halaman |
| page_type_flag_bits | nvarchar(64) | Ketik bit Bendera di header halaman |
| page_type_flag_bits_desc | nvarchar(64) | Ketik deskripsi bit bendera di header halaman |
| page_flag_bits | nvarchar(64) | Bit bendera di header halaman |
| page_flag_bits_desc | nvarchar(256) | Deskripsi bit bendera di header halaman |
| page_lsn | nvarchar(64) | Nomor urutan log / tanda waktu |
| page_level | int | Tingkat halaman dalam indeks (daun = 0) |
| object_id | int | ID objek yang memiliki halaman |
| index_id | int | ID indeks (0 untuk halaman data heap) |
| partition_id | bigint | ID partisi |
| alloc_unit_id | bigint | ID unit alokasi |
| is_encrypted | bit | Bit untuk menunjukkan apakah halaman dienkripsi atau tidak |
| has_checksum | bit | Bit untuk menunjukkan apakah halaman memiliki nilai checksum atau tidak |
| Checksum | int | Menyimpan nilai checksum yang digunakan untuk mendeteksi kerusakan data |
| is_iam_pg | bit | Bit untuk menunjukkan apakah halaman tersebut adalah halaman IAM atau tidak |
| is_mixed_ext | bit | Bit untuk menunjukkan apakah dialokasikan dalam jangkauan campuran |
| has_ghost_records | bit | Bit untuk menunjukkan apakah halaman berisi catatan hantu Catatan hantu adalah rekaman yang telah ditandai untuk dihapus tetapi belum dihapus. |
| has_version_records | bit | Bit untuk menunjukkan apakah halaman berisi rekaman versi yang digunakan untuk Pemulihan Database Yang Dipercepat |
| pfs_page_id | int | ID halaman halaman PFS terkait |
| pfs_is_allocated | bit | Bit untuk menunjukkan apakah halaman ditandai sebagai dialokasikan di halaman PFS terkait atau tidak |
| pfs_alloc_percent | int | Persentase alokasi seperti yang ditunjukkan oleh byte PFS yang sesuai |
| pfs_status | nvarchar(64) | Byte PFS |
| pfs_status_desc | nvarchar(64) | Deskripsi byte PFS |
| gam_page_id | int | ID Halaman dari halaman GAM yang sesuai |
| gam_status | bit | Bit untuk menunjukkan jika dialokasikan di GAM |
| gam_status_desc | nvarchar(64) | Deskripsi bit status GAM |
| sgam_page_id | int | ID Halaman dari halaman SGAM yang sesuai |
| sgam_status | bit | Bit untuk menunjukkan jika dialokasikan di SGAM |
| sgam_status_desc | nvarchar(64) | Deskripsi bit status SGAM |
| diff_map_page_id | int | ID halaman dari halaman bitmap diferensial terkait |
| diff_status | bit | Bit untuk menunjukkan apakah status diff diubah |
| diff_status_desc | nvarchar(64) | Deskripsi bit status diff |
| ml_map_page_id | int | ID halaman dari halaman bitmap pengelogan minimal yang sesuai |
| ml_status | bit | Bit untuk menunjukkan apakah halaman dicatat minimal |
| ml_status_desc | nvarchar(64) | Deskripsi bit status pengelogan minimal |
| prev_page_file_id | smallint | ID file halaman sebelumnya |
| prev_page_page_id | int | ID halaman sebelumnya |
| next_page_file_id | smallint | ID file halaman berikutnya |
| next_page_page_id | int | ID halaman berikutnya |
| fixed_length | smallint | Panjang baris ukuran tetap |
| slot_count | smallint | Jumlah total slot (digunakan dan tidak digunakan) Untuk halaman data, angka ini setara dengan jumlah baris. |
| ghost_rec_count | smallint | Jumlah rekaman yang ditandai sebagai hantu di halaman Catatan hantu adalah rekaman yang telah ditandai untuk dihapus tetapi belum dihapus. |
| free_bytes | smallint | Jumlah byte gratis pada halaman |
| free_data_offset | int | Offset ruang kosong di akhir area data |
| reserved_bytes | smallint | Jumlah byte gratis yang dipesan oleh semua transaksi (jika tumpukan) Jumlah baris hantu (jika daun indeks) |
| reserved_bytes_by_xdes_id | smallint | Ruang yang dikontribusikan oleh m_xdesID ke m_reservedCnt Hanya untuk tujuan penelusuran kesalahan |
| xdes_id | nvarchar(64) | Transaksi terbaru yang dikontribusikan oleh m_reserved Hanya untuk tujuan penelusuran kesalahan |
Keterangan
Fungsi sys.dm_db_page_info manajemen dinamis mengembalikan informasi halaman seperti page_id, , file_id, index_idobject_id dll. yang ada di header halaman. Informasi ini berguna untuk memecahkan masalah dan men-debug berbagai performa (ketidakcocokan kunci dan kait) dan masalah kerusakan.
sys.dm_db_page_info dapat digunakan sebagai pengganti DBCC PAGE pernyataan dalam banyak kasus, tetapi hanya mengembalikan informasi header halaman, bukan isi halaman. DBCC PAGE masih akan diperlukan untuk kasus penggunaan di mana seluruh konten halaman diperlukan.
Menggunakan bersama dengan DMV Lain
Salah satu kasus sys.dm_db_page_info penggunaan penting adalah menggabungkannya dengan DMV lain yang mengekspos informasi halaman. Untuk memfasilitasi kasus penggunaan ini, kolom baru yang disebut page_resource telah ditambahkan yang mengekspos informasi halaman dalam format heksa 8-byte. Kolom ini telah ditambahkan ke sys.dm_exec_requests dan sys.sysprocesses dan akan ditambahkan ke DMV lain di masa mendatang sesuai kebutuhan.
Fungsi baru, sys.fn_PageResCracker, mengambil page_resource sebagai input dan menghasilkan satu baris yang berisi database_id, file_id dan page_id. Fungsi ini kemudian dapat digunakan untuk memfasilitasi gabungan antara sys.dm_exec_requests atau sys.sysprocesses dan sys.dm_db_page_info.
Izin
VIEW DATABASE STATE Memerlukan izin dalam database.
Contoh
A. Menampilkan semua properti halaman
Kueri berikut mengembalikan satu baris dengan semua informasi halaman untuk , , file_idpage_id kombinasi tertentu database_iddengan mode default ('LIMITED')
SELECT *
FROM sys.dm_db_page_info (5, 1, 15, DEFAULT)
B. Menggunakan sys.dm_db_page_info dengan DMV lain
Kueri berikut mengembalikan satu baris per wait_resource yang diekspos oleh sys.dm_exec_requests saat baris berisi non-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
Lihat juga
Tampilan dan Fungsi Manajemen Dinamis (SQL Bertransaksi)
Tampilan Manajemen Dinamis Terkait Database (SQL Bertransaksi)
sys.dm_exec_requests (Transact-SQL)
sys.fn_PageResCracker