gpt4 book ai didi

sql - Synapse 专用池查询运行缓慢

转载 作者:行者123 更新时间:2023-12-03 03:36:51 24 4
gpt4 key购买 nike

我已经设置了 Synapse 工作区,并在 DW100c 上运行专用池。

问题是我的数据集非常小 - 我正在创建一些维度和事实,最大的事实约为 300,000 条记录。尺寸要小得多。

我们使用的是 Azure SQL 数据库,并希望迁移到 Synapse。我们在 SQL 数据库(2 核)中运行的一些存储过程大约需要 2 分钟,而在 Synapse 中则需要 6-7 分钟。

我不明白 SYnapse 专用池是否更高级,为什么我的查询需要更长的时间?如果我将其扩展到 500 是的,它确实会加速,但这肯定不是答案吗?我在必要的地方使用循环/复制/哈希创建了表。

问题是我的数据集对于 Synapse 专用池来说太小了吗?

最佳答案

只要您在开始查询之前更新统计信息,即使循环分配中只有 300K 记录,Synapse 专用 SQL 池仍然应该很快,因为第一个查询将启动全表扫描。

当您使用哈希分布时,请记住选择一个可以相当均匀地分布在 60 个节点上的分布键...这意味着不要选择仅具有几个唯一值和/或大量空值的键。

确保您的维度表都是复制分布。

了解您的数据库被分为 60 个不同的数据库节点,因此如果您在特定分布键(例如 ProductID = 90099)上使用 WHERE 子句查询任何内容,则 60 个节点中只有 1 个会执行任何工作。在 DW100c 上,处理能力并不强。选择不同的分发 key ,以便您可以利用并行处理功能。

您可以尝试在事实表上设置一些聚集索引和非聚集索引,并确保在更新事实表后更新统计信息。

我通常会避免 HASH 分布,除非我有一个包含 80M 到 100M 行或更多的表,因为行组是在 60 个节点中的每个节点上生成的,并且为了进行压缩,您需要每个行组具有 1M 条记录。

关于sql - Synapse 专用池查询运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72991848/

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