sys.internal_partitions(Transact-SQL)

적용 대상: SQL Server 2016(13.x) 이상 Azure SQL DatabaseAzure SQL Managed Instance

디스크 기반 테이블의 columnstore 인덱스에 대한 내부 데이터를 추적하는 각 행 집합에 대해 하나의 행을 반환합니다. 이러한 행 집합은 columnstore 인덱스 내부이며 삭제된 행, 행 그룹 매핑 및 델타 저장소 행 그룹을 추적합니다. 각 테이블 파티션에 대한 데이터를 추적합니다. 모든 테이블에는 하나 이상의 파티션이 있습니다. SQL Server는 columnstore 인덱스를 다시 작성할 때마다 행 집합을 다시 만듭니다.

열 이름 데이터 형식 설명
partition_id bigint 이 파티션의 파티션 ID입니다. 데이터베이스 내에서 고유합니다.
object_id int 파티션을 포함하는 테이블의 개체 ID입니다.
index_id int 테이블에 정의된 columnstore 인덱스 인덱스 ID입니다.

1 = 클러스터형 columnstore 인덱스

2 = 비클러스터형 columnstore 인덱스
partition_number int 파티션 번호입니다.

1 = 분할된 테이블의 첫 번째 파티션 또는 분할되지 않은 테이블의 단일 파티션입니다.

2 = 두 번째 파티션 등
internal_object_type tinyint columnstore 인덱스 내부 데이터를 추적하는 행 집합 개체입니다.

2 = COLUMN_STORE_DELETE_BITMAP

3 = COLUMN_STORE_DELTA_STORE

4 = COLUMN_STORE_DELETE_BUFFER

5 = COLUMN_STORE_MAPPING_INDEX
internal_object_type_desc nvarchar(60) COLUMN_STORE_DELETE_BITMAP - 이 비트맵 인덱스는 columnstore에서 삭제된 것으로 표시된 행을 추적합니다. 비트맵은 파티션에 여러 행 그룹에 행이 있을 수 있으므로 모든 행 그룹에 대한 것입니다. 행은 여전히 물리적으로 존재하며 columnstore에서 공간을 차지합니다.

COLUMN_STORE_DELTA_STORE - 열 형식 스토리지로 압축되지 않은 행 그룹이라고 하는 행 그룹을 저장합니다. 각 테이블 파티션에는 0개 이상의 deltastore 행 그룹이 있을 수 있습니다.

COLUMN_STORE_DELETE_BUFFER - 업데이트 가능한 비클러스터형 columnstore 인덱스에 대한 삭제를 유지 관리합니다. 쿼리가 기본 rowstore 테이블에서 행을 삭제하면 삭제 버퍼는 columnstore에서 삭제를 추적합니다. 삭제된 행 수가 1048576 초과하면 백그라운드 튜플 Mover 스레드 또는 명시적 재구성 명령을 통해 삭제 비트맵으로 다시 병합됩니다. 지정된 시점에서 삭제 비트맵과 삭제 버퍼의 합합은 삭제된 모든 행을 나타냅니다.

COLUMN_STORE_MAPPING_INDEX - 클러스터형 columnstore 인덱스가 보조 비클러스터형 인덱스가 있는 경우에만 사용됩니다. 이렇게 하면 비클러스터형 인덱스 키가 columnstore의 올바른 행 그룹 및 행 ID에 매핑됩니다. 다른 행 그룹으로 이동하는 행의 키만 저장합니다. 이는 델타 행 그룹이 columnstore로 압축되고 병합 작업이 서로 다른 두 행 그룹의 행을 병합할 때 발생합니다.
Row_group_id int deltastore 행 그룹의 ID입니다. 각 테이블 파티션에는 0개 이상의 deltastore 행 그룹이 있을 수 있습니다.
hobt_id bigint HoBT(내부 행 집합 개체)의 ID입니다. 이는 다른 DMV와 조인하여 내부 행 집합의 물리적 특성에 대한 자세한 정보를 얻기 위한 좋은 키입니다.
rows bigint 이 파티션의 대략적인 행 수입니다.
data_compression tinyint 행 집합에 대한 압축 상태입니다.

0 = NONE

1 = 행

2 = PAGE
data_compression_desc nvarchar(60) 각 파티션에 대한 압축 상태입니다. rowstore 테이블에 사용할 수 있는 값은 NONE, ROW 및 PAGE입니다. columnstore 테이블에 사용할 수 있는 값은 COLUMNSTORE 및 COLUMNSTORE_ARCHIVE.
optimize_for_sequential_key bit 1 = 파티션에 마지막 페이지 삽입 최적화가 활성화되어 있습니다.

0 = 기본값입니다. 파티션의 마지막 페이지 삽입 최적화를 사용할 수 없습니다.

사용 권한

public 역할의 멤버 자격이 필요합니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

일반적인 주의 사항

SQL Server는 columnstore 인덱스를 만들거나 다시 작성할 때마다 새 columnstore 내부 인덱스를 다시 만듭니다.

A. 테이블에 대한 모든 내부 행 집합 보기

다음은 테이블에 대한 모든 내부 columnstore 행 집합을 반환하는 예제입니다. hobt_id 사용하여 특정 행 집합에 대한 자세한 정보를 찾을 수도 있습니다.

SELECT i.object_id, i.index_id, i.name, p.hobt_id, p.internal_object_type_id, p.internal_object_type_desc  
FROM sys.internal_partitions AS p  
JOIN sys.indexes AS i  
on i.object_id = p.object_id  
WHERE p.object_id = OBJECT_ID ( '<table name' ) ;  

참고 항목

개체 카탈로그 뷰(Transact-SQL)
카탈로그 뷰(Transact-SQL)
SQL Server 시스템 카탈로그 쿼리 FAQ