合并数据

时间:2017-05-17 04:02:54

标签: self-join postgres-xl

我的postgres-xl版本是9.5r1.5稳定。 当查询如下

SELECT * FROM tests t1 LEFT JOIN tests t2 ON t1.id1 = t2.id2 WHERE t1.id1=10000;

此查询很简单,只返回一行。当我在数据节点中运行它时,只花费10毫秒。但是在coord节点中花费10020毫秒。 我曾尝试过其他一些查询,并确保在加入同一个表coord节点时花费10秒。 但是如果查询没有返回任何内容,则在coord节点中仅花费20ms。所以我认为,当coord节点组合数据时,它出了问题。 任何人都可以告诉我如何避免这种情况。 非常感谢。

2 个答案:

答案 0 :(得分:0)

还尝试类似“ SET work_mem ='256MB'; SET LOCAL work_mem ='256MB';”的操作。增加默认内存以进行排序和清理。

答案 1 :(得分:0)

这是https://dba.stackexchange.com的问题,实际上是someone had the same problem there的问题。

您可以在链接的问题上看到my answer,以下是简短摘要:

  

这是一个postgres-xl错误,该错误在使用行重新分配计划和执行的查询上触发,并且某些节点没有任何行。

     

您可以通过更改查询,更改表分布或添加数据来解决此问题。您可以使用EXPLAIN检查查询是否涉及数据重新分配。