sys.fn_PageResCracker (Transact-SQL)

Applies to: SQL Server 2019 (15.x)

Returns the db_id, file_id, and page_id for the given page_resource value.

Transact-SQL syntax conventions

Syntax

sys.fn_PageResCracker ( page_resource )  

Arguments

page_resource
Is the 8-byte hexadecimal format of a database page resource.

Tables Returned

Column name Data type Description
db_id int Database ID
file_id int File ID
page_id int Page ID

Remarks

sys.fn_PageResCracker is used to convert the 8-byte hexadecimal representation of a database page to a rowset that contains the database ID, file ID and page ID of the page.

You can obtain a valid page resource from the page_resource column of the sys.dm_exec_requests (Transact-SQL) dynamic management view or the sys.sysprocesses (Transact-SQL) system view. If an invalid page resource is used then the return is NULL.
The primary use of sys.fn_PageResCracker is to facilitate joins between these views and the sys.dm_db_page_info (Transact-SQL) dynamic management function in order to obtain information about the page, such as the object to which it belongs.

Permissions

The user needs VIEW SERVER STATE permission on the server.

Examples

The sys.fn_PageResCracker function can be used in conjunction with sys.dm_db_page_info (Transact-SQL) to troubleshoot page related waits and blocking in SQL Server. The following script is an example of how you can use these functions to gather database page information for all active requests that are currently waiting on some type of 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, 'DETAILED') AS page_info

See Also

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