此条目与 PostgreSQL 的一项功能相关,该功能是 PostgreSQL 18 的一部分,预计将于 2025 年底发布。
pg_clear_relation_stats()
是一个系统函数,用于重置关系的表级统计信息,使其处于与关系新创建时相同的状态。此函数主要用于测试和调试目的。
pg_clear_relation_stats()
在 PostgreSQL 18 中添加。
用法
pg_clear_relation_stats (relation
regclass
) →void
pg_clear_relation_stats()
可以由数据库所有者或具有 MAINTAIN
权限的角色执行。
更改历史记录
- PostgreSQL 18
- 添加 (提交 e839c8ec)
示例
pg_clear_relation_stats()
的基本用法示例
postgres=# SELECT relpages, reltuples, relallvisible FROM pg_class WHERE oid = 'test'::regclass; relpages | reltuples | relallvisible ----------+-----------+--------------- 0 | 400 | 4 (1 row) postgres=# SELECT pg_clear_relation_stats('test'); pg_clear_relation_stats ------------------------- (1 row) postgres=# SELECT relpages, reltuples, relallvisible FROM pg_class WHERE oid = 'test'::regclass; relpages | reltuples | relallvisible ----------+-----------+--------------- 0 | -1 | 0 (1 row)
请注意,如果对表执行了任何 VACUUM
、ANALYZE
或 autovacuum
,则 pg_clear_relation_stats()
清除的统计信息将被更新。
postgres=# ANALYZE test ; ANALYZE postgres=# SELECT relpages, reltuples, relallvisible FROM pg_class WHERE oid = 'test'::regclass; relpages | reltuples | relallvisible ----------+-----------+--------------- 0 | 0 | 0 (1 row)
参考文献
- PostgreSQL 18 文档: 数据库对象统计信息操作函数