【问题标题】:Vacuuming and Analyse : Drastic change in query cost清理和分析:查询成本的急剧变化
【发布时间】: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


【解决方案1】:

使 Autovaccum 具有攻击性;但是如果您认为 autovaccum 正在耗尽资源(通过查看 cpu 和 IO 使用情况),您可以调整——表级别的 autovacuum_vacuum_cost_delay 和 autovacuum_vacuum_threshold 参数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    相关资源
    最近更新 更多