gpt4 book ai didi

azure - 在 Azure Synapse 中,是否不鼓励创建临时表?

转载 作者:行者123 更新时间:2023-12-02 06:26:01 26 4
gpt4 key购买 nike

我与一位同事进行了很好的讨论,他提到创建临时表会降低 Azure Synapse 中的性能,因为 Synapse 首先在主节点中创建临时表,然后将它们分发到子节点。这是真的吗?他建议我创建永久表而不是临时表。

最佳答案

这是不正确的。临时表不一定通过控制节点。假设您正在从 ProductKey 上分布的表中进行选择,并将其加载到 ProductKey 上分布的 #temp 表中。数据永远不会离开每个计算节点,因为它是分布兼容的插入。

另一方面,例如,如果您运行使用 ROW_NUMBER 函数的查询,则必须在控制节点上进行计算,然后将数据发送回计算节点要存储在分布式临时表中的节点。但这仅在存在某些类型的函数和某些类型的查询时才会发生。这不是常态。如果您担心某个特定查询,请将 EXPLAIN 添加到其前面,并将解释计划 XML 粘贴到您的问题中,以便我们帮助您解释它。

如果使用 SELECT INTO 语句加载 #temp 表,则无法指定表几何结构,因此它将是循环分布式列存储。通常这并不理想,因为压缩列存储需要额外的时间和内存,并且循环分配并不理想,除非没有好的分配键。通常,使用循环分布式临时表的下一个查询只会重新排列它,因此最好最初正确地散列分布临时表。为此,请执行 CTAS 语句,如 here 中所述。 .

关于azure - 在 Azure Synapse 中,是否不鼓励创建临时表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66112954/

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