pg_database_size()
是一个系统函数,返回指定数据库的总大小。
pg_database_size()
添加于 PostgreSQL 8.1。
用法
pg_database_size (name
) →bigint
pg_database_size (oid
) →bigint
pg_database_size()
可以被任何拥有数据库 CONNECT
权限的用户执行,或者(从 PostgreSQL 10 开始)任何属于 pg_read_all_stats
角色的用户。
请注意,pg_database_size()
计算的是数据库数据目录(包含在 base/
子目录中)以及任何关联的 表空间 中相应目录的实际磁盘使用量。这可能导致读取的大小比计算该数据库中所有对象的总和要大。
更改历史
- PostgreSQL 8.1
- 添加 (提交 358a897f)
示例
pg_database_size()
的基本执行示例
postgres=# SELECT pg_database_size('proddb'); pg_database_size ------------------ 6309618543 (1 row)
尝试确定不存在的数据库的大小
postgres=# SELECT pg_database_size('foo'); ERROR: database "foo" does not exist
尝试通过 OID 确定不存在的数据库的大小
postgres=# SELECT pg_database_size(99::oid); pg_database_size ------------------ (1 row)
(返回 NULL
)。
参考文献
- PostgreSQL 文档: 数据库对象管理函数
有用链接
- 我的数据库和其他东西有多大 - Postgres OnLine Journal 2011 年 11 月的博客文章