Поделиться через


sys.fn_PageResCracker (Transact-SQL)

Область применения: SQL Server 2019 (15.x)

db_idВозвращает значение , file_idа также page_id для заданного page_resource значения.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sys.fn_PageResCracker ( page_resource )  

Аргументы

page_resource
Является шестнадцатеричным форматом 8-байтового ресурса страницы базы данных.

Возвращаемые таблицы

Имя столбца Тип данных Description
db_id int Идентификатор базы данных
file_id int Идентификатор файла
page_id int ИД страницы

Замечания

sys.fn_PageResCracker используется для преобразования шестнадцатеричного представления 8-байтовой страницы базы данных в набор строк, содержащий идентификатор базы данных, идентификатор файла и идентификатор страницы страницы.

Допустимый ресурс страницы можно получить из page_resource столбца динамического административного представления sys.dm_exec_requests (Transact-SQL) или системного представления sys.sysprocesses (Transact-SQL). Если используется недопустимый ресурс страницы, возвращается значение 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)