Microsoft 为SQL DW中的复制表分布提供了设计指南,但我不清楚这种分布类型对于只分配一个计算节点的小型服务层(子 DW1000)是否有优势。
具有单个计算节点的低端服务层部署是否受益于这种小维度(例如国家、日历等)的分布类型,还是应该选择不同的分布选项?
Microsoft 为SQL DW中的复制表分布提供了设计指南,但我不清楚这种分布类型对于只分配一个计算节点的小型服务层(子 DW1000)是否有优势。
具有单个计算节点的低端服务层部署是否受益于这种小维度(例如国家、日历等)的分布类型,还是应该选择不同的分布选项?
答案是肯定的,即使在小型 DWU 上,您也会从复制表中受益。这样做的原因是,当您执行查询时,此查询分为 60 个正在运行的查询。所以新人忘记了无论 DWU 的数量如何,您总是有 60 个发行版。复制意味着您将始终在每个分发版上拥有复制表的完整副本。因此,这就是原因,因为使用复制表可以消除对查询执行非常有用的改组。(换句话说,查询将包含正在运行的分布的所有数据。)
此外,您必须记住,Microsoft 说复制表的良好候选者是 <= 2 GB 的表。您可以猜测,使用复制会带来额外的存储成本,因为您的表将因复制而占用 60 倍的当前存储空间。但与往常一样,优化是一些值之间的权衡。
在所有层上复制表是有好处的。请记住,Azure Synapse SQL 具有跨存储传播数据的节点和分布。因此 Synapse SQL 将跨分布复制数据。复制表和分布式表的整个想法是减少数据移动。看看这个博客中的复制表图。