【发布时间】:2017-06-06 19:56:19
【问题描述】:
我有一个 Postgres 9.6 安装,我遇到了这种奇怪的情况 - 如果我在 10 到 15 分钟后运行具有多个连接的相同查询,则查询成本的值会增加数百和它继续增加。
我确实了解清理和分析的作用,但我担心在执行清理和分析的几分钟内开始增加的查询成本。恐怕这可能会导致未来的性能瓶颈。
PS:我有两个表,其中一个是大量写入(大约 500 万条记录),另一个是大量更新(postGIS 的 70 K 记录,此表主要在 lat lon 和 geom 列上有更新)
这是否意味着我应该每隔几个小时运行一次自动吸尘器?
【问题讨论】:
-
查询执行时间是否也增加了?也许调整后的成本,只是更好地反映了现实世界。计划是否改变或只是成本估算?如果您多次使用
explain (analyze, verbose, buffers),您会得到不同的执行时间吗?通常不需要手动运行真空。如果你经常更新表,你应该确保你没有idle in transaction会话,并且你使 autovacuum 足够积极以跟上变化率 -
@a_horse_with_no_name 因此,当我多次使用 explain 和 analyze 、 verbos 和 buffer 时,我确实得到了不同的执行时间。虽然查询计划根本没有改变。
标签: performance postgresql postgis database-administration