pg_relation_size() 是一个系统函数,用于确定关系特定 分片 的磁盘占用空间。
pg_relation_size() 在 PostgreSQL 8.1 中添加。
用法
pg_relation_size (relationregclass[,forktext] ) →bigint
fork 可以是以下值之一(如果未指定,默认为 main)
main(主分片)fsm(空闲空间图)vm(可见性图)init(初始化分片)
调用者无需对关系具有任何权限即可确定其大小。但是,对表上加 ACCESS EXCLUSIVE 锁会导致函数在此锁释放之前一直等待。
如果通过名称指定的关系不存在,则会引发 ERROR。
如果提供的 OID 未映射到现有关系,则返回 NULL。
请注意,对于大多数用途,使用 pg_total_relation_size() 或 pg_table_size() 会更方便。
变更历史
- PostgreSQL 9.2
- PostgreSQL 8.1
- 添加(提交 358a897f)
示例
pg_relation_size() 的基本用法示例
postgres=# SELECT pg_relation_size('app.object', 'fsm');
pg_relation_size
------------------
24576
(1 row)
尝试查询不存在的关系的大小
postgres=# SELECT pg_relation_size('foo');
ERROR: relation "foo" does not exist
LINE 1: SELECT pg_relation_size('foo');
^
提供一个未映射到现有关系的 OID
postgres=# SELECT pg_relation_size(123);
pg_relation_size
------------------
(1 row)
参考资料
- PostgreSQL文档: 数据库对象大小函数
