sys.fn_PageResCracker (Transact-SQL)

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

返回给定db_idfile_id值和page_idpage_resource值。

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)