pg_relation_size()
是一个系统函数,用于确定关系特定分支的磁盘大小。
pg_relation_size()
添加于PostgreSQL 8.1。
用法
pg_relation_size (relation
regclass
[,fork
text
] ) →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,该 OID 未映射到现有关系
postgres=# SELECT pg_relation_size(123); pg_relation_size ------------------ (1 row)
参考
- PostgreSQL 文档: 数据库对象大小函数