SQL Server/SQL Server Tip

SQL Server 2019 에서 추가된sys.dm_db_page_info, sys.fn_PageResCracker 기능으로 대기 관련 정보 확인

SungWookKang 2019. 3. 26. 00:07
반응형

SQL Server 2019 에서 추가된sys.dm_db_page_info, sys.fn_PageResCracker 기능으로 대기 관련 정보 확인

 

·         Version : SQL Server 2019

 

SQL Server 2019 CTP 2.0에서 추가된 스토리지 엔진의 새로운 기능으로 페이지 관련 대기를 있는 sys.dm_db_page_info DMV 추가 되었다. 기능은  기존의 DBCC 확인할 있었던 tempdb 경합이나, 마지막 페이지 삽입 경합(las page insert contention) 페이지 수준의 블록킹 등을 확인할 있다.

sys.dm_db_page_info DMV 데이터베이스 ID, 파일 ID, 페이지 ID 모드(LIMITED 또는 DETAILED) 4가지 매개 변수를 사용한다. sys.dm_db_page_info object_id, index_id partition_id 포함하여 페이지의 헤더 정보를 단일 행이 있는 테이블로 반환한다. 또한 sys.dm_exec_requests 또는 sys.sysprocesses DMV 함수와 조인하여 페이지 관련 경합이 있을때 정보를  확인할 있다. 아래 스크립트는 sys.dm_db_page_info,  sys.fn_PageResCracker 사용하여 모든 활성 요청에 대한 페이지 관련 대기를 확인할 있다.

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, 1) AS page_info

 

새로운 기능에도 가지 제한사항은 있다. 우선 DBCC PAGE 완전히 대체할 없다. DBCC PAGE 헤더 정보와 모든 데이터 슬롯 배열을 포함하여 페이지의 전체 내용을 제공한다. 또한  현재 sys.dm_exec_requests sys.sysprocesses 대한 조인만 지원된다.

 

[참고자료]

https://blogs.msdn.microsoft.com/sql_server_team/sql-server-2019-ctp-2-0-new-features-introducing-the-page-cracker-aka-sys-dm_db_page_info/

 

2018-10-16 / Sungwook Kang / http://sqlmvp.kr

 

SQL Server, MSSQL, SQL 2019, Rowstore, Batch mode, Batch Mode on Rowstore, Intelligent Query Processing


반응형