pg_stat_reset_single_table_counters()
是一个系统函数,用于将单个表或索引的统计信息重置为零。
pg_stat_reset_single_table_counters()
在 PostgreSQL 9.0 中添加。
用法
pg_stat_reset_single_table_counters ( oid ) → void
如果提供无效的 OID,则不会引发错误。
默认情况下,pg_stat_reset_single_function_counters()
只能由超级用户执行。其他用户可以通过 EXECUTE
权限授予执行权限。
更改历史记录
- PostgreSQL 15
- 现在能够重置集群范围共享表的统计信息(提交 e0426784)
- PostgreSQL 9.0
- 添加(提交 083e1b0f)
示例
pg_stat_reset_single_table_counters()
的基本用法示例
proddb=# SELECT * FROM pg_stat_user_tables WHERE relname = 'object'; -[ RECORD 1 ]-------+------------------------------ relid | 16956 schemaname | app relname | object seq_scan | 905147 seq_tup_read | 4148119915 idx_scan | 1532505226 idx_tup_fetch | 1953595589 n_tup_ins | 4922 n_tup_upd | 10738 n_tup_del | 11 n_tup_hot_upd | 10689 n_live_tup | 4906 n_dead_tup | 158 (...) proddb=# SELECT pg_stat_reset_single_table_counters('app.object'::regclass); pg_stat_reset_single_table_counters ------------------------------------- (1 row) proddb=# SELECT * FROM pg_stat_user_tables WHERE relname = 'object'; -[ RECORD 1 ]-------+------- relid | 16956 schemaname | app relname | object seq_scan | 0 seq_tup_read | 0 idx_scan | 1532505226 idx_tup_fetch | 1953595589 n_tup_ins | 0 n_tup_upd | 0 n_tup_del | 0 n_tup_hot_upd | 0 n_live_tup | 0 n_dead_tup | 0 (...)
请注意,索引计数器仅通过调用 pg_stat_reset_single_table_counters()
并指定基础关系上的每个索引来重置。
提供无效的 OID 不会导致引发错误或任何其他类型的警告
postgres=# SELECT pg_stat_reset_single_table_counters(-1); pg_stat_reset_single_table_counters ------------------------------------- (1 row)
参考文献
- PostgreSQL 文档: 其他统计函数