PostgreSQL 파티션 테이블 관련


표 9.93 파티션 정보 기능

一、pg_partition_tree( regclass )

  • 예: pg_partition_tree ( regclass ) → setof record ( relid regclass,
    parentrelid regclass, isleaf boolean, level integer )
  • 설명: 지정된 분할 테이블 또는 분할 인덱스의 파티션 트리에 있는 테이블 또는 인덱스를 각 파티션에 대해 한 행씩 나열합니다.
    제공된 정보에는 파티션의 OID, 바로 위 부모의 OID, 파티션이 리프인지 여부를 알려주는 부울, 계층 구조에서 파티션 수준을 알려주는 정수가 포함됩니다.
    수준 값은 입력 테이블 또는 인덱스의 경우 0, 직속 하위 파티션의 경우 1, 해당 파티션의 경우 2 등입니다. 관계가 존재하지 않거나 파티션 또는 파티션된 테이블이 아닌 경우 행이 반환되지 않습니다.

예를 들어:

select pg_partition_tree('tzq.tzq_test_log_t'::regclass);

또는:

select pg_partition_tree(oid)
  from pg_class
 where relname = 'tzq_test_log_t';

결과:

pg_partition_tree
(tzq.tzq_test_log_t,,f,0)
(tzq.tzq_test_log_t_p1,tzq.tzq_test_log_t,t,1)
(tzq.tzq_test_log_t_p2,tzq.tzq_test_log_t,t,1)

二、pg_partition_ancestors( regclass )

  • 기능: pg_partition_ancestors( regclass ) → setof regclass
  • 설명: 관계 자체를 포함하여 지정된 파티션에 대한 상위 관계를 나열합니다. 관계가 존재하지 않거나 파티션 또는 파티션된 테이블이 아닌 경우 행이 반환되지 않습니다.

예를 들어:

select pg_partition_ancestors('tzq.tzq_test_log_t_p1'::regclass);

또는:

select pg_partition_ancestors(oid)
  from pg_class
 where relname = 'tzq_test_log_t_p1';

결과:

pg_partition_ancestors
tzq.tzq_test_log_t_p1
tzq.tzq_test_log_t

三、pg_partition_root ( regclass )

  • 기능: pg_partition_root( regclass ) → regclass
  • 설명: 주어진 관계가 속한 파티션 트리의 최상위 부모 노드를 반환합니다. 관계가 존재하지 않거나 파티션 또는 분할된 테이블이 아닌 경우 NULL을 반환합니다.

예를 들어:

select pg_partition_root('tzq.tzq_test_log_t_p1'::regclass);

또는:

select pg_partition_root(oid)
  from pg_class
 where relname = 'tzq_test_log_t_p1';

결과:

pg_partition_root
tzq.tzq_test_log_t

4. 파티션 테이블에 포함된 데이터의 전체 크기 확인

예를 들어, 분할된 테이블 tzq_test_log_t에 포함된 데이터의 전체 크기를 확인하려면 다음 쿼리를 사용할 수 있습니다.

SELECT pg_size_pretty(sum(pg_relation_size(relid))) AS total_size
  FROM pg_partition_tree('tzq.tzq_test_log_t');

추천

출처blog.csdn.net/tttzzzqqq2018/article/details/132291822