有没有一种简单的方法可以列出Postgresql数据库中的所有表并按大小排序?
伪代码
SELECT * FROM tables ORDER by tables.size
我正在使用Postgresql 9.3.2.
select table_name,pg_relation_size(quote_ident(table_name)) from information_schema.tables where table_schema = 'public' order by 2
如果您有多个模式,则可以显示模式公共中所有表的大小,您可能希望使用:
select table_schema,table_name,pg_relation_size('"'||table_schema||'"."'||table_name||'"') from information_schema.tables order by 3
sqlFiddle示例:http://sqlfiddle.com/#!15/13157/3
手册中所有对象大小函数的列表:
https://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE