我有一个基于非常复杂(而且效率不高)查询的物化视图。此物化视图用于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_size
和shared_buffers
,但结果仍然相同。
有时,经过多次尝试,刷新命令将成功完成。但它是不可预测的,即使多次尝试/ db重启后,目前也无法工作。
对可能出现问题的任何建议?