获取PostgreSQL数据库中的分区数
获取数据库中创建的分区数的最有效方法是什么获取PostgreSQL数据库中的分区数,sql,postgresql,inheritance,database-partitioning,Sql,Postgresql,Inheritance,Database Partitioning,获取数据库中创建的分区数的最有效方法是什么 我使用C++的“强> PostgreSQL”/Stult> API。< /P> < P>这是您可以选择表分区的所有名称: SELECT nmsp_parent.nspname AS parent_schema, parent.relname AS parent, nmsp_child.nspname AS child, child.relname AS child_schema FROM pg_i
我使用C++的“强> PostgreSQL”/Stult> API。< /P> < P>这是您可以选择表分区的所有名称:
SELECT
nmsp_parent.nspname AS parent_schema,
parent.relname AS parent,
nmsp_child.nspname AS child,
child.relname AS child_schema
FROM pg_inherits
JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
JOIN pg_class child ON pg_inherits.inhrelid = child.oid
JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = parent.relnamespace
JOIN pg_namespace nmsp_child ON nmsp_child.oid = child.relnamespace
它也可用于计数:
SELECT
nmsp_parent.nspname AS parent_schema,
parent.relname AS parent,
COUNT(*)
FROM pg_inherits
JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
JOIN pg_class child ON pg_inherits.inhrelid = child.oid
JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = parent.relnamespace
JOIN pg_namespace nmsp_child ON nmsp_child.oid = child.relnamespace
GROUP BY
parent_schema,
parent;
传统的分区是不可用的。每个继承表在系统目录中都有一个条目。给定父表的分区数可以简单地用以下公式计算:
SELECT count(*) AS partitions
FROM pg_catalog.pg_inherits
WHERE inhparent = 'schema.parent_tbl'::regclass;
该解决方案也适用于Postgres 10或更高版本,因为引用手册:
单个分区通过幕后继承链接到分区表
有关dba.SE的相关问题: