sys.fn_PageResCracker (Transact-SQL)

适用于: SQL Server 2019 (15.x)

返回db_id给定page_resource值的 、 file_idpage_id

Transact-SQL 语法约定

语法

sys.fn_PageResCracker ( page_resource )  

参数

page_resource
数据库页资源的 8 字节十六进制格式。

返回的表

列名称 数据类型 说明
db_id int 数据库 ID
file_id int 文件 ID
page_id int 页面 ID

备注

sys.fn_PageResCracker 用于将数据库页的 8 字节十六进制表示形式转换为包含该页的数据库 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.sysprocesses (Transact-SQL)
sys.dm_exec_requests (Transact-SQL)