gpt4 book ai didi

sql - Amazon Redshift 执行 Hash Join,即使在加入 Dist Key 和 Sort Key 的列时也是如此

转载 作者:行者123 更新时间:2023-12-02 15:28:05 24 4
gpt4 key购买 nike

我在 Redshift 中有一个事实表,它有大约 13 亿行,分布键 c1 和排序键 c1、c2。

我需要使用 c1 上的连接子句将此表与其自身连接(即来自表的第一个实例的 c1 = 来自表的第二个实例的 c1)。

正如我所见查询的查询计划,Redshift 似乎正在使用 DS_DIST_NONE 进行哈希连接。尽管 DS_DIST_NONE 是预期的,因为我在 c1 列上同时具有 dist 键和排序键,但我希望 Redshift 执行 Merge Join 而不是 Hash Join(再次出于相同的原因)。

我认为这会减慢我的查询速度。

任何人都可以解释为什么 Redshift 可能正在执行哈希连接而不是合并连接(即使我在连接列上同时具有 DIST 键和 SORT 键)并且 Redshift 正在为查询执行 DS_DIST_NONE?

最佳答案

事实证明,由于我们没有按排序顺序(由该表的排序键定义)在表中插入数据,并且 Redshift 不会自动保持表的行按排序键排序,因此 Redshift 无法执行Merge Join 在我们的 table 上。在表上运行 Full Vacuum 后,Redshift 开始执行 Merge Join

关于sql - Amazon Redshift 执行 Hash Join,即使在加入 Dist Key 和 Sort Key 的列时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com