sys.dm_db_page_info (Transact-SQL)sys.dm_db_page_info (Transact-SQL)

適用対象: yes SQL Server 2019 以降 YesAzure SQL Database Azure Synapse Analytics (SQL DW) noParallel Data WarehouseAPPLIES TO: YesSQL Server 2019 and later YesAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

データベース内のページに関する情報を返します。Returns information about a page in a database. 関数は、 object_idindex_id、など、ページのヘッダー情報を含む1行を返しpartition_idます。The function returns one row that contains the header information from the page, including the object_id, index_id, and partition_id. この関数を使用すると、ほとんどの場合に DBCC PAGE を使用する必要がなくなります。This function replaces the need to use DBCC PAGE in most cases.


sys.dm_db_page_infoは、現在以降でSQL Server 2019 (15.x)SQL Server 2019 (15.x)のみサポートされています。sys.dm_db_page_info is currently supported only in SQL Server 2019 (15.x)SQL Server 2019 (15.x) and later.


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


DatabaseId |NULL |標準DatabaseId | NULL | DEFAULT
データベースの ID を示します。Is the ID of the database. DatabaseIdsmallintです。DatabaseId is smallint. 有効な入力値は、データベースの ID 番号です。Valid input is the ID number of a database. 既定値は NULL です。ただし、このパラメーターに NULL 値を指定すると、エラーが発生します。The default is NULL, however sending a NULL value for this parameter will result in an error.

FileId |NULL |標準FileId | NULL | DEFAULT
ファイルの ID を指定します。Is the ID of the file. FileIdintです。 有効な入力は、 DatabaseIdによって指定されたデータベース内のファイルの ID 番号です。FileId is int. Valid input is the ID number of a file in the database specified by DatabaseId. 既定値は NULL です。ただし、このパラメーターに NULL 値を指定すると、エラーが発生します。The default is NULL, however sending a NULL value for this parameter will result in an error.

ページ id |NULL |標準PageId | NULL | DEFAULT
ページの ID を示します。Is the ID of the page. ページ idintです。 有効な入力値は、 FileIdによって指定されたファイル内のページの ID 番号です。PageId is int. Valid input is the ID number of a page in the file specified by FileId. 既定値は NULL です。ただし、このパラメーターに NULL 値を指定すると、エラーが発生します。The default is NULL, however sending a NULL value for this parameter will result in an error.

Mode |NULL |標準Mode | NULL | DEFAULT
関数の出力の詳細レベルを決定します。Determines the level of detail in the output of the function. ' 制限付き ' は、すべての説明列に対して NULL 値を返します。 ' DETAILED ' は説明列を設定します。'LIMITED' will return NULL values for all description columns, 'DETAILED' will populate description columns. 既定値は "制限されています" です。DEFAULT is 'LIMITED.'

返されるテーブルTable Returned

列名Column name データ型Data type 説明Description
database_iddatabase_id  intint  データベース IDDatabase ID 
file_idfile_id  intint  ファイル IDFile ID 
page_idpage_id  intint  ページ IDPage ID 
page_header_versionpage_header_version  intint  ページヘッダーのバージョンPage header version 
page_typepage_type  intint  ページの種類Page Type 
page_type_descpage_type_desc  nvarchar (64)nvarchar(64)  ページの種類の説明Description of the page type 
page_type_flag_bitspage_type_flag_bits  nvarchar (64)nvarchar(64)  ページヘッダーにフラグビットを入力Type Flag bits in page header 
page_type_flag_bits_descpage_type_flag_bits_desc  nvarchar (64)nvarchar(64)  ページヘッダーの型フラグのビットの説明Type flag bits description in page header 
page_flag_bitspage_flag_bits  nvarchar (64)nvarchar(64)  ページヘッダーのフラグビットFlag bits in page header 
page_flag_bits_descpage_flag_bits_desc  nvarchar(256)nvarchar(256)  ページヘッダーのビットの説明にフラグを付けるFlag bits description in page header 
page_lsnpage_lsn  nvarchar (64)nvarchar(64)  ログシーケンス番号/タイムスタンプLog sequence number / timestamp 
page_levelpage_level  intint  インデックス内のページのレベル (リーフ = 0)Level of the page in index (leaf = 0) 
object_idobject_id  intint  ページを所有しているオブジェクトの IDID of the object owning the page 
index_idindex_id  intint  インデックスの ID (ヒープデータページの場合は 0)ID of the index (0 for heap data pages) 
partition_idpartition_id  bigintbigint  パーティションの IDID of the partition 
alloc_unit_idalloc_unit_id  bigintbigint  アロケーションユニットの IDID of the allocation unit 
is_encryptedis_encrypted bitbit ページが暗号化されているかどうかを示すビットBit to indicate whether or not the page is encrypted
has_checksumhas_checksum bitbit ページにチェックサム値があるかどうかを示すビットBit to indicate whether or not the page has a checksum value
チェックサム (checksum)checksum  intint  データの破損を検出するために使用されるチェックサム値を格納します。Stores the checksum value that is used to detect data corruption 
is_iam_pgis_iam_pg  bitbit  ページが IAM ページであるかどうかを示すビットBit to indicate whether or not the page is an IAM page  
is_mixed_extis_mixed_ext  bitbit  混合エクステントで割り当てられているかどうかを示すビットBit to indicate if allocated in a mixed extent 
has_ghost_recordshas_ghost_records bitbit ページにゴーストレコードが含まれているかどうかを示すビットBit to indicate if the page contains ghost records
ゴーストレコードとは、削除対象としてマークされているものの、まだ削除されていないレコードのことです。A ghosted record is one that has been marked for deletion but has yet to be removed.
has_version_recordshas_version_records bitbit ページにデータベースの高速復旧に使用されるバージョンレコードが含まれているかどうかを示すビットBit to indicate if the page contains version records used for Accelerated Database Recovery
pfs_page_idpfs_page_id  intint  対応する PFS ページのページ IDPage ID of corresponding PFS page 
pfs_is_allocatedpfs_is_allocated bitbit 対応する PFS ページでページが割り当て済みとしてマークされているかどうかを示すビットBit to indicate whether or not the page is marked as allocated in the corresponding PFS page
pfs_alloc_percentpfs_alloc_percent  intint  対応する PFS バイトによって示される割り当て比率Allocation percent as indicated by the corresponding PFS byte 
pfs_statuspfs_status  nvarchar (64)nvarchar(64)  PFS バイトPFS byte 
pfs_status_descpfs_status_desc  nvarchar (64)nvarchar(64)  PFS バイトの説明Description of the PFS byte 
gam_page_idgam_page_id  intint  対応する GAM ページのページ IDPage ID of the corresponding GAM page 
gam_statusgam_status  bitbit  GAM で割り当てられているかどうかを示すビットBit to indicate if allocated in GAM 
gam_status_descgam_status_desc  nvarchar (64)nvarchar(64)  GAM ステータスビットの説明Description of the GAM status bit 
sgam_page_idsgam_page_id  intint  対応する SGAM ページのページ IDPage ID of the corresponding SGAM page
sgam_statussgam_status  bitbit  SGAM で割り当てられているかどうかを示すビットBit to indicate if allocated in SGAM 
sgam_status_descsgam_status_desc  nvarchar (64)nvarchar(64)  SGAM ステータスビットの説明Description of the SGAM status bit 
diff_map_page_iddiff_map_page_id  intint  対応する差分ビットマップページのページ IDPage ID of the corresponding differential bitmap page
diff_statusdiff_status  bitbit  Diff の状態が変更されたかどうかを示すビットBit to indicate if diff status is changed 
diff_status_descdiff_status_desc  nvarchar (64)nvarchar(64)  Diff ステータスビットの説明Description of the diff status bit 
ml_map_page_idml_map_page_id  intint  対応する最小ログ記録ビットマップページのページ IDPage ID of the corresponding minimal logging bitmap page
ml_statusml_status  bitbit  ページが最小ログ記録されるかどうかを示すビットBit to indicate if the page is minimally logged 
ml_status_descml_status_desc  nvarchar (64)nvarchar(64)  最小ログ記録ステータスビットの説明Description of the minimal logging status bit 
prev_page_file_idprev_page_file_id  smallintsmallint  前のページファイル IDPrevious page file ID 
prev_page_page_idprev_page_page_id  intint  前のページページ IDPrevious page page ID 
next_page_file_idnext_page_file_id  smallintsmallint  次のページファイル IDNext page file ID 
next_page_page_idnext_page_page_id  intint  次のページページ IDNext page page ID 
fixed_lengthfixed_length  smallintsmallint  固定サイズの行の長さLength of fixed size rows 
slot_countslot_count  smallintsmallint  スロットの合計数 (使用済みおよび未使用)Total number of slots (used and unused)
データページの場合、この数値は行の数と同じです。For a data page, this number is equivalent to the number of rows. 
ghost_rec_countghost_rec_count  smallintsmallint  ページでゴーストとしてマークされたレコードの数Number of records marked as ghost on the page
ゴーストレコードとは、削除対象としてマークされているものの、まだ削除されていないレコードのことです。A ghosted record is one that has been marked for deletion but has yet to be removed. 
free_bytesfree_bytes  smallintsmallint  ページの空きバイト数Number of free bytes on the page 
free_data_offsetfree_data_offset  intint  データ領域の端にある空き領域のオフセットOffset of free space at end of data area 
reserved_bytesreserved_bytes  smallintsmallint  すべてのトランザクションで予約されている空きバイト数 (ヒープの場合)Number of free bytes reserved by all transactions (if heap) 
ゴースト行の数 (インデックスのリーフの場合)Number of ghosted rows (if index leaf) 
reserved_bytes_by_xdes_idreserved_bytes_by_xdes_id  smallintsmallint  M_reservedCnt に m_xdesID によって提供される領域Space contributed by m_xdesID to m_reservedCnt
デバッグ目的のみFor debugging purposes only 
xdes_idxdes_id  nvarchar (64)nvarchar(64)  M_reserved によって提供される最新のトランザクションLatest transaction contributed by m_reserved
デバッグ目的のみFor debugging purposes only 


動的sys.dm_db_page_info管理関数はpage_id、ページヘッダーに存在file_idするindex_idobject_id 、、などのページ情報を返します。The sys.dm_db_page_info dynamic management function returns page information like page_id, file_id, index_id, object_id etc. that are present in a page header. この情報は、さまざまなパフォーマンス (ロックとラッチの競合) と破損の問題に関するトラブルシューティングとデバッグに役立ちます。This information is useful for troubleshooting and debugging various performance (lock and latch contention) and corruption issues.

sys.dm_db_page_info多くの場合、 DBCC PAGEステートメントの代わりに使用できますが、ページの本文ではなくページヘッダー情報のみが返されます。sys.dm_db_page_info can be used in place of the DBCC PAGE statement in many cases, but it returns only the page header information, not the body of the page. DBCC PAGEは、ページのコンテンツ全体が必要な場合にも必要になります。DBCC PAGE will still be needed for use cases where the entire contents of the page are required.

を他の Dmv と組み合わせて使用するUsing in Conjunction With Other DMVs

sys.dm_db_page_info重要なユースケースの1つは、ページ情報を公開する他の dmv と結合することです。One of the important use cases of sys.dm_db_page_info is to join it with other DMVs that expose page information. このユースケースを容易にするために、 page_resourceという新しい列が追加されました。これにより、ページ情報が8バイトの16進形式で公開されます。To facilitate this use case, a new column called page_resource has been added which exposes page information in an 8-byte hex format. この列は、およびsys.dm_exec_requests sys.sysprocessesに追加されており、必要に応じて今後他の dmv に追加されます。This column has been added to sys.dm_exec_requests and sys.sysprocesses and will be added to other DMVs in the future as needed.

sys.fn_PageResCracker新しい関数は、を入力page_resourceとして受け取り、、、 database_id file_idおよびpage_idを含む1行を出力します。A new function, sys.fn_PageResCracker, takes the page_resource as input and outputs a single row that contains database_id, file_id and page_id. この関数は、またはsys.dm_exec_requests sys.sysprocessessys.dm_db_page_infoの間の結合を容易にするために使用できます。This function can then be used to facilitate joins between sys.dm_exec_requests or sys.sysprocesses and sys.dm_db_page_info.


データベースのVIEW DATABASE STATE権限が必要です。Requires the VIEW DATABASE STATE permission in the database.


A.A. ページのすべてのプロパティを表示するDisplaying all the properties of a page

次のクエリでは、指定したのすべてのページ情報database_idfile_id含むpage_id 1 行が返されます。既定のモード (' 制限付き ') と組み合わせて使用します。The following query returns one row with all the page information for a given database_id, file_id, page_id combination with default mode ('LIMITED')

FROM sys.dm_db_page_info (5, 1, 15, DEFAULT)

B.B. 他の Dmv での dm_db_page_info の使用Using sys.dm_db_page_info with other DMVs

次のクエリは、行にwait_resource null 以外sys.dm_exec_requestsのが含まれている場合に、によって公開される1行を返します。page_resourceThe following query returns one row per wait_resource exposed by sys.dm_exec_requests when the row contains a 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

参照See Also

Transact-sql)(の動的管理ビューおよび関数 Dynamic Management Views and Functions (Transact-SQL)
Transact-sql)(データベース関連の動的管理ビュー Database Related Dynamic Management Views (Transact-SQL)
dm_exec_requests (Transact-sql) sys.dm_exec_requests (Transact-SQL)