如何解决什么时候以及为什么我应该触发pg_stat_reset?
我试图了解如何监视和调整Postgresql性能。我从探索表pg_stat_all_tables
,pg_stat_statements
开始,以收集有关活动元组,死元组,上次自动清理时间等信息。有一些关于n_live_tuples
的有用信息(接近实际行数)在表中)和n_dead_tup
,直到我运行pg_stat_reset
查询。之后,我得到了一些奇怪的结果-n_live_tup
比n_dead_tup
少。我找不到任何有关为什么和何时(某些用例)应该运行pg_stat_reset
查询的文章/文档。有人可以向我解释一下还是提供一些有用的资源?
解决方法
可以偶尔运行pg_stat_reset()
(例如每月一次),以获取有关数据库中最新情况的最新视图。
但是不要经常这样做,因为它有一个缺点:与系统相关的自动清理过程依赖于这些统计信息,因此,如果这样做,您将错过几次自动清理(和自动分析)运行。在您的数据库中,这可能是问题,也可能不是问题,但是无论如何我都不会经常这样做。如果可以,请在调用VACUUM
之后手动ANALYZE
和pg_stat_reset()
数据库。
pg_stat_statements_reset()
并没有这样的问题,因此请尽可能多地运行它。
最适合您的是拥有一个监视软件,该软件定期检查统计信息的值并为您提供发展情况(与上次运行有所不同)。这样一来,您就不必重置统计信息,而且仍可以对发生的事情有个很好的了解。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。