pg_relation_size()

用于确定关系分片大小的函数

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() 会更方便。

变更历史

示例

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)

分类

系统函数

另请参阅

pg_total_relation_size(), pg_table_size(), pg_indexes_size()

反馈

pg_relation_size()”的任何评论、建议或更正,请在此 提交