pg_clear_relation_stats() 是一个用于重置关系(表)的统计信息的系统函数,将其恢复到刚创建时的状态。此函数主要用于测试和调试目的。
pg_clear_relation_stats() 在 PostgreSQL 18 中添加。
用法
pg_clear_relation_stats (relationregclass) →void
pg_clear_relation_stats() 可以由数据库所有者或具有 MAINTAIN 权限的角色执行。
变更历史
- PostgreSQL 18
- 添加于 (commit 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 文档: 数据库对象统计信息修改函数
