次の方法で共有


sys.fn_PageResCracker (Transact-SQL)

適用対象: SQL Server 2019 (15.x)

指定したpage_resource値のdb_idfile_id、およびpage_idを返します。

Transact-SQL 構文表記規則

構文

sys.fn_PageResCracker ( page_resource )  

引数

page_resource
データベース ページ リソースの 8 バイトの 16 進数形式です。

返されるテーブル

列名 データ型 説明
db_id int データベース ID
file_id int ファイル ID
page_id int ページ ID

解説

sys.fn_PageResCracker は、データベース ページの 8 バイトの 16 進数表現を、ページのデータベース ID、ファイル ID、ページ ID を含む行セットに変換するために使用されます。

有効なページ リソースは、sys.dm_exec_requests (Transact-SQL) 動的管理ビューまたは sys.sysprocesses (Transact-SQL) システム ビューのpage_resource列から取得できます。 無効なページ リソースが使用されている場合、戻り値は NULL になります。
sys.fn_PageResCrackerの主な用途は、ページが属するオブジェクトなどの情報を取得するために、これらのビューと sys.dm_db_page_info (Transact-SQL) 動的管理機能の間の結合を容易にすることです。

アクセス許可

ユーザーには、サーバー VIEW SERVER STATE アクセス許可が必要です。

sys.fn_PageResCracker関数を sys.dm_db_page_info (Transact-SQL) と組み合わせて使用して、SQL Server でのページ関連の待機とブロックのトラブルシューティングを行うことができます。 次のスクリプトは、これらの関数を使用して、何らかの種類のページ リソースで現在待機しているすべてのアクティブな要求のデータベース ページ情報を収集する方法の例です。

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, 'DETAILED') AS page_info

参照

sys.dm_db_page_info (Transact-SQL)
sys.sysのプロセス (Transact-sql)
sys.dm_exec_requests (Transact-SQL)