在PostgreSQL中获取所有表的名称及其磁盘大小

时间:2014-09-25 11:25:40

标签: sql postgresql

使用pg_relation_size函数获取 PostgreSQL 9.2 数据库中特定表的大小。

例如,

select pg_relation_size('public.tbl_tras_log')

将返回tbl_tras_log的大小。


那么,我的问题是如何在数据库中获取所有 size

1 个答案:

答案 0 :(得分:2)

最好使用pg_size_pretty - Converts a size in bytes expressed as a 64-bit integer into a human-readable format with size units

例如

select pg_size_pretty(pg_relation_size('public.audit_14'))
  

结果:1​​624 kB

你的问题的答案是,

select 
    schemaname,
    relname as table_name,
    pg_size_pretty(pg_relation_size(schemaname ||'.'||relname)) as table_size 
from 
(
  select 
      schemaname, 
      relname 
  from pg_stat_user_tables order by relname 
) t