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 文档: 数据库对象大小函数