sys.dm_db_page_info(Transact-SQL)

적용 대상: SQL Server 2019 (15.x) Azure SQL DatabaseAzure SQL Managed Instance

데이터베이스의 페이지에 대한 정보를 반환합니다. 이 함수는 페이지의 머리글 정보를 포함하는 행 1개(예: 및 index_id.)를 object_id반환합니다partition_id. 이 함수는 대부분의 경우 사용 DBCC PAGE 필요성을 대체합니다.

참고 항목

sys.dm_db_page_info 는 현재 SQL Server 2019(15.x) 이상에서만 지원됩니다.

구문

sys.dm_db_page_info ( DatabaseId , FileId , PageId , Mode )

인수

DatabaseId | NULL | 기본

데이터베이스의 ID입니다. DatabaseId가 smallint입니다. 유효한 입력은 데이터베이스의 ID 번호입니다. 기본값은 NULL이지만 이 매개 변수에 대해 NULL 값을 보내면 오류가 발생합니다.

FileId | NULL | 기본

파일의 ID입니다. FileId가 int입니다. 유효한 입력은 DatabaseId로 지정된 데이터베이스에 있는 파일의 ID 번호입니다. 기본값은 NULL이지만 이 매개 변수에 대해 NULL 값을 보내면 오류가 발생합니다.

PageId | NULL | 기본

페이지의 ID입니다. PageId가 int입니다. 유효한 입력은 FileId로 지정된 파일에 있는 페이지의 ID 번호입니다. 기본값은 NULL이지만 이 매개 변수에 대해 NULL 값을 보내면 오류가 발생합니다.

모드 | NULL | 기본

함수 출력의 세부 수준을 결정합니다. 'LIMITED' 는 모든 설명 열에 대해 NULL 값을 반환합니다. 'DETAILED'는 설명 열을 채웁니다. DEFAULT'LIMITED'입니다.

반환된 테이블

열 이름 데이터 형식 설명
database_id int 데이터베이스 ID입니다.

Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 없습니다.
file_id int 파일 ID
page_id int 페이지 ID
page_header_version int 페이지 머리글 버전
page_type int 페이지 유형
page_type_desc nvarchar(64) 페이지 유형에 대한 설명
page_type_flag_bits nvarchar(64) 페이지 머리글의 형식 플래그 비트
page_type_flag_bits_desc nvarchar(64) 페이지 머리글의 형식 플래그 비트 설명
page_flag_bits nvarchar(64) 페이지 머리글의 플래그 비트
page_flag_bits_desc nvarchar(256) 페이지 머리글의 플래그 비트 설명
page_lsn nvarchar(64) 로그 시퀀스 번호/타임스탬프
page_level int 인덱스의 페이지 수준(리프 = 0)
object_id int 페이지를 소유하는 개체의 ID
index_id int 인덱스의 ID(힙 데이터 페이지의 경우 0)
partition_id bigint 파티션의 ID
alloc_unit_id bigint 할당 단위의 ID
is_encrypted bit 페이지 암호화 여부를 나타내는 비트
has_checksum bit 페이지에 체크섬 값이 있는지 여부를 나타내는 비트
checksum int 데이터 손상을 감지하는 데 사용되는 체크섬 값을 저장합니다.
is_iam_pg bit 페이지가 IAM 페이지인지 여부를 나타내는 비트
is_mixed_ext bit 혼합 익스텐트에서 할당되었는지 여부를 나타내는 비트
has_ghost_records bit 페이지에 고스트 레코드가 포함되어 있는지 여부를 나타내는 비트
고스트 레코드는 삭제하도록 표시되었지만 아직 제거되지 않은 레코드입니다.
has_version_records bit 페이지에 가속 데이터베이스 복구에 사용되는 버전 레코드가 포함되어 있는지 여부를 나타내는 비트
pfs_page_id int 해당 PFS 페이지의 페이지 ID
pfs_is_allocated bit 페이지가 해당 PFS 페이지에 할당된 것으로 표시되는지 여부를 나타내는 비트
pfs_alloc_percent int 해당 PFS 바이트가 나타내는 할당 비율
pfs_status nvarchar(64) PFS 바이트
pfs_status_desc nvarchar(64) PFS 바이트에 대한 설명
gam_page_id int 해당 GAM 페이지의 페이지 ID
gam_status bit GAM에 할당되었는지 여부를 나타내는 비트
gam_status_desc nvarchar(64) GAM 상태 비트에 대한 설명
sgam_page_id int 해당 SGAM 페이지의 페이지 ID
sgam_status bit SGAM에 할당되었는지 여부를 나타내는 비트
sgam_status_desc nvarchar(64) SGAM 상태 비트에 대한 설명
diff_map_page_id int 해당 차등 비트맵 페이지의 페이지 ID
diff_status bit diff 상태가 변경되었는지 여부를 나타내는 비트
diff_status_desc nvarchar(64) diff 상태 비트에 대한 설명
ml_map_page_id int 해당하는 최소 로깅 비트맵 페이지의 페이지 ID
ml_status bit 페이지가 최소 로깅되었는지 여부를 나타내는 비트
ml_status_desc nvarchar(64) 최소 로깅 상태 비트에 대한 설명
prev_page_file_id smallint 이전 페이지 파일 ID
prev_page_page_id int 이전 페이지 ID
next_page_file_id smallint 다음 페이지 파일 ID
next_page_page_id int 다음 페이지 ID
fixed_length smallint 고정 크기 행의 길이
slot_count smallint 총 슬롯 수(사용 및 사용되지 않음)
데이터 페이지의 경우 이 숫자는 행 수와 동일합니다.
ghost_rec_count smallint 페이지에서 고스트로 표시된 레코드 수
고스트 레코드는 삭제하도록 표시되었지만 아직 제거되지 않은 레코드입니다.
free_bytes smallint 페이지의 무료 바이트 수
free_data_offset int 데이터 영역 끝의 여유 공간 오프셋
reserved_bytes smallint 모든 트랜잭션에서 예약된 무료 바이트 수(힙인 경우)
고스트된 행 수(인덱스 리프인 경우)
reserved_bytes_by_xdes_id smallint m_xdesID m_reservedCnt 기여한 공간
디버깅 용도로만
xdes_id nvarchar(64) m_reserved 의해 기여된 최신 트랜잭션
디버깅 용도로만

설명

동적 관리 함수는 sys.dm_db_page_info 페이지 머리글에 있는 등index_idfile_idobject_id과 같은 page_id정보를 반환합니다. 이 정보는 다양한 성능(잠금 및 래치 경합) 및 손상 문제를 해결하고 디버깅하는 데 유용합니다.

sys.dm_db_page_info 는 대부분의 경우 문 대신 DBCC PAGE 사용할 수 있지만 페이지 본문이 아닌 페이지 머리글 정보만 반환합니다. DBCC PAGE 는 페이지의 전체 콘텐츠가 필요한 사용 사례에 계속 필요합니다.

다른 DMV와 함께 사용

중요한 사용 사례 sys.dm_db_page_info 중 하나는 페이지 정보를 노출하는 다른 DMV와 조인하는 것입니다. 이 사용 사례를 용이하게 하기 위해 페이지 정보를 8바이트 16진수 형식으로 노출하는 새 열이 page_resource 추가되었습니다. 이 열은 추가 sys.dm_exec_requestssys.sysprocesses 되었으며 필요에 따라 나중에 다른 DMV에 추가될 예정입니다.

새 함수는 sys.fn_PageResCracker입력으로 사용하고 page_resource 포함하는 database_idfile_id 단일 행을 출력합니다page_id. 그런 다음 이 함수를 사용하여 사이 sys.dm_exec_requests 또는 sys.sysprocesses .sys.dm_db_page_info

사용 권한

데이터베이스에 대한 VIEW DATABASE STATE 사용 권한이 필요합니다.

SQL Server 2022 이상에 대한 권한

데이터베이스에 대한 VIEW DATABASE PERFORMANCE STATE 권한이 필요합니다.

A. 페이지의 모든 속성 표시

다음 쿼리는 지정된 database_idfile_idpage_id , 기본 모드와 조합('LIMITED')에 대한 모든 페이지 정보가 포함된 한 행을 반환합니다.

SELECT *
FROM sys.dm_db_page_info (5, 1, 15, DEFAULT);

B. 다른 DMV와 함께 sys.dm_db_page_info 사용

다음 쿼리는 행에 sys.dm_exec_requests null이 아닌 행이 포함된 경우 노출되는 행당 wait_resource 한 행을 반환합니다.page_resource

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, 'LIMITED') AS page_info;

참고 항목