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

四、检查分区表中包含的数据的总大小

例如,要检查分区表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