获取没有行的表而不计算

时间:2011-02-16 07:56:53

标签: sql postgresql

我有一个包含大量表格的庞大PostgreSQL数据库。出于性能原因,我想学习所有空表而不计算每个表(有些表有几百万行)。

3 个答案:

答案 0 :(得分:2)

此查询将为您提供近似结果,但不包括计算表行。

SELECT relname FROM pg_class JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid) WHERE relpages = 0 AND pg_namespace.nspname = 'public';

这在VACUUM ANALYZE之后效果最佳。

答案 1 :(得分:1)

根据http://wiki.postgresql.org/wiki/Slow_Counting,一种解决方案是首先通过

找到带有'reltuples'的表格
select relname from pg_class where reltuples < X

然后只测试那些空虚。

答案 2 :(得分:0)

所以你想看表结构,对吧?试试pg admin

你可以打开表并查看所有结构,例如数据类型,索引,函数等

相关问题