sys.fn_PageResCracker (Transact-SQL)
适用于: SQL Server 2019 (15.x)
返回db_id
给定page_resource
值的 、 file_id
和 page_id
。
语法
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)