SQL Server/SQL Server 자주보는

[MSSQL] 파티션 테이블, 파티션 파일그룹, 파티션 경계값 확인하는 방법

꽁담 2020. 2. 9. 22:55

파티션 테이블, 구성표, 함수란


파티션 테이블은

파티션 별로 파일그룹을 지정한 '파티션 구성표' 와

파티션 별로 저장할 데이터 경계값을 지정하는 '파티션 함수' 로 구성됩니다.


경계값은 경계값을 포함할 건지, 포함하지 않을 건지에 대한 옵션을 설정할 수 있습니다.



파티션 테이블, 파일그룹, 경계값을 확인하는 쿼리


아래 쿼리는 TEST_T1 의 파티션 테이블의 구성만 확인할 수 있지만,

전체 파티션 테이블을 확인하고 싶은 경우 12 라인의 조건을 주석처리 해주시면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SELECT a.name "테이블 이름",
       f.name "파티션 함수",
       c.name "파티션 구성표",
       e.name "파일 그룹",
       f.type_desc "파티션 타입",
       CASE WHEN f.boundary_value_on_right = 1 THEN 'NO'
                                               ELSE 'YES'
       END AS "경계값 포함여부",
       g.value "경계값"
FROM sys.tables a
     INNER JOIN sys.indexes b
       ON a.name = 'TEST_T1'
       AND a.object_id = b.object_id
       AND b.index_id in (01)
     INNER JOIN sys.partition_schemes c
       ON b.data_space_id = c.data_space_id
     INNER JOIN sys.destination_data_spaces d
       ON c.data_space_id = d.partition_scheme_id
     INNER JOIN sys.data_spaces e
       ON d.data_space_id = e.data_space_id
     INNER JOIN sys.partition_functions f
       ON c.function_id = f.function_id
     LEFT OUTER JOIN sys.partition_range_values g
       ON c.function_id = g.function_id
       AND d.destination_id = g.boundary_id
 
cs