PostgreSQLパーティションテーブル関連


表9.93 パーティション情報関数

一、pg_partition_tree ( regclass )

  • 関数数:pg_partition_tree ( regclass ) → setof Record (relid regclass、
    parentrelid regclass、isleaf boolean、level integer )
  • 説明: 指定されたパーティション テーブルまたはパーティション インデックスのパーティション ツリー内のテーブルまたはインデックスを、パーティションごとに 1 行でリストします。
    提供される情報には、パーティションの 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

3、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