查询以查找面向列的表(append_only 表)和分区表的列表

Posted

技术标签:

【中文标题】查询以查找面向列的表(append_only 表)和分区表的列表【英文标题】:Query to find list of Column Oriented table(append_only tables) and partitioned tables 【发布时间】:2015-01-22 07:29:57 【问题描述】:

需要帮助

    如何列出任何数据库中面向列的表?

    如何列出在任何数据库中使用分区创建的表?

谢谢

【问题讨论】:

【参考方案1】:

在 Greenplum 中,您不能发出跨数据库查询,并且由于目录放置在每个数据库中,因此您不能同时列出“所有”数据库中的表。但是对于每个数据库,您都可以使用以下查询轻松完成:

-- List all the column-oriented tables in current database
select  n.nspname as schemaname,
        c.relname as tablename
    from pg_class as c, pg_namespace as n
    where c.relnamespace = n.oid
        and c.relstorage = 'c';

-- List all partitioned tables in current database
select schemaname,
       tablename,
       count(*) as num_partitions
    from pg_partitions
    group by 1, 2;

【讨论】:

【参考方案2】:

也会有帮助

select relname from pg_class where reloptions= 'appendonly=true,orientation=column';

select * from pg_partitions;

谢谢

【讨论】:

以上是关于查询以查找面向列的表(append_only 表)和分区表的列表的主要内容,如果未能解决你的问题,请参考以下文章

修改列表视图查询集以汇总包含具有相同值的列的表

SQL 查询表以查找特定列的最小值 >= X 的行

sql SQL查询以查找表中的列中的重复项,从而更改列的排序规则以确保重复项检查为大小写

Oracle 高水位说明和释放表空间,加快表的查询速度

查询以查找列的 nᵗʰ 最大值

SQL Server 2000中查询表名,列名及字段类型