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)