【发布时间】:2021-07-30 22:52:46
【问题描述】:
我真的看不出在具有完全唯一和不同值的列上的循环分布和散列分布之间的区别。我的意思是,它们都有一个均匀分布,但没有同一类别的分组值,对吧?是不是哈希分布在某处记住了哈希键和存储位置,所以性能更高?
【问题讨论】:
标签: azure distribution azure-synapse
我真的看不出在具有完全唯一和不同值的列上的循环分布和散列分布之间的区别。我的意思是,它们都有一个均匀分布,但没有同一类别的分组值,对吧?是不是哈希分布在某处记住了哈希键和存储位置,所以性能更高?
【问题讨论】:
标签: azure distribution azure-synapse
散列分布表可提高大型事实表的查询性能,循环表可用于提高加载速度。由于相同的值总是散列到相同的分布,SQL Analytics 具有行位置的内置知识。在专用 SQL 池中,此知识用于最大限度地减少查询期间的数据移动,从而提高查询性能。
在循环分布式表中,行在所有分布中均匀分布。但是将行分配给分布是随机的。与散列分布表不同,具有相等值的行不能保证分配给相同的分布。
因此,系统有时需要调用数据移动操作来更好地组织您的数据,然后才能解析查询。这个额外的步骤可能会减慢您的查询速度。
【讨论】: