我想为指定的表设置自动真空参数。
我的问题是,AUTOVACUUM在一张小桌子上的分析需要很长时间才能完成。该表只有2列(包括主键)和150行,但它经常更新。每一行在客户端进程启动后每分钟更新一次。
我发现这张桌子上的自动真空过程需要20秒。根据我目前所理解的,这是因为自动真空过程没有像它应该的那样频繁地执行。
以下是服务器配置上设置的参数:
autovacuum_analyse_threshold => 50
autovacuum_analyse_scale_factor => 0.1你建议我在这张桌子上具体设置什么参数?
提前谢谢。
更新1:在生产过程中,自动真空分析过程每2分钟在这张桌子上运行一次,需要超过10s。
更新2:表格大小为15998页。
UDPATE 3:我有99个用户(客户端连接)每15秒更新一次表。
发布于 2014-05-22 16:39:46
由于您的表有15998页,但只有150行,所以它必须非常臃肿。一次VACUUM FULL或CLUSTER应该可以解决这个问题。那么问题将是,它是否会再次膨胀。
为了使其更具侵略性,您可能需要降低autovacuum_naptime (除非您已经这样做了),因为它已经非常频繁地被清除。
10秒大约需要多长时间来分析在默认的autovac节流设置下这样大小的表。但在这种情况下,很难相信它正在消耗大量的CPU时间。你测量过CPU的使用量了吗?
锁干扰了什么?如果您经常运行与分析相冲突的命令,这可以解释为什么表一开始就会膨胀。
https://dba.stackexchange.com/questions/65561
复制相似问题