PostgreSQL - 长查询暂停

时间:2018-03-01 03:31:03

标签: postgresql query-performance database-tuning

我有一个基于非常复杂(而且效率不高)查询的物化视图。此物化视图用于BI /可视化。通常需要大约4分钟才能完成刷新,这足以满足我的需求。运行ANALYZE显示总成本为2,116,446,其中137,682行和1,976宽度。

但是,有时refresh materialize view XXX永远不会完成。查看顶级进程(ubuntu中的top),进程将使用100%CPU和8.1%(服务器的28GB内存)一段时间......然后突然它从{{{ 1}}列表。它通常在约4-5分钟后发生(尽管top配置被禁用)。 postgres客户端只是永远等待,视图永远不会刷新。

直接在视图后面运行查询(即statement_timeout)也会失败(同样的问题)。

我正在使用9.5版。我尝试在postgres配置中增加SELECT ...effective_cache_sizeshared_buffers,但结果仍然相同。

有时,经过多次尝试,刷新命令将成功完成。但它是不可预测的,即使多次尝试/ db重启后,目前也无法工作。

对可能出现问题的任何建议?

0 个答案:

没有答案