pg_total_relation_size()
是一个系统函数,用于确定关系的磁盘总大小,包括数据和任何索引。
pg_total_relation_size()
添加于 PostgreSQL 8.1。
用法
pg_total_relation_size (regclass
) →bigint
pg_total_relation_size()
返回 pg_table_size()
和 pg_indexes_size()
对该关系返回的值之和。
如果按名称指定的关联不存在,则会引发 ERROR
。
如果提供的 OID 没有映射到现有关系,则返回 NULL
。
调用者不需要对表有任何权限即可确定其大小。但是,对表的 ACCESS EXCLUSIVE
锁定会使函数暂停,直到释放锁定为止。
变更历史
- PostgreSQL 8.1
- 添加 (提交 358a897f)
示例
pg_total_relation_size()
的基本用法示例
postgres=# SELECT pg_size_pretty(pg_total_relation_size('object_property')); pg_size_pretty ---------------- 492 MB (1 row)
pg_total_relation_size()
返回的值与 pg_table_size()
和 pg_indexes_size()
返回的值之和相同。
appdb=> WITH sizes AS ( SELECT pg_table_size('object_property'), pg_indexes_size('object_property'), pg_total_relation_size('object_property') ) SELECT pg_total_relation_size, pg_table_size + pg_indexes_size FROM sizes; pg_total_relation_size | ?column? ------------------------+----------- 515989504 | 515989504 (1 row)
参考文献
- PostgreSQL 文档: 数据库对象大小函数