【问题标题】:Join Considerations in Azure SQL Data WarehouseAzure SQL 数据仓库中的联接注意事项
【发布时间】:2015-09-12 14:08:19
【问题描述】:

您应该如何设计事实表和维度表以加快新 Azure SQL 数据仓库的连接速度?

通过散列分布大型事实表并复制较小的维度表是否有助于加快连接速度,还是应该将索引作为主要考虑因素?

【问题讨论】:

  • 这太宽泛了

标签: sql azure data-warehouse azure-sqldw


【解决方案1】:

Azure SQL 数据仓库最初提供两种表类型 - Round Robin 和 Hash Distributed(请参阅https://azure.microsoft.com/documentation/articles/sql-data-warehouse-develop-table-design/ 上的 SQL DW 表文档)。

通常对于维度表,您会选择循环分配。对于事实表,您需要选择基于 HASH 的分布式表设计。

**编辑:现在也支持复制,这对于某些维度表可能是一个有用的选项。

【讨论】:

    【解决方案2】:

    您通过散列分布大型事实表和复制较小维度表的基本前提在 PDW 等 MPP 环境中效果很好,但由于 SQL DW 不假设复制数据(但 - 希望有一天),您需要为此使用循环分配。

    如果您可以最大程度地减少数据移动,那么您就可以采取一些好的措施来提高连接的性能。但是,将数据放在正确的服务器上只是成功的一半,您还应该考虑索引策略,就像在常规 (SMP) SQL Server 环境中一样。

    【讨论】:

    • 只是一个更新,说明 REPLICATE 现在在 Azure SQL DW 中提供公共预览版。
    【解决方案3】:

    请注意,ADW REPLICATE 处于公开预览阶段,但我认为它仍然存在问题。我有几个已更改为 REPLICATE 的小表,但是当我加入这些复制的表并查看解释 xml 计划时,我仍然看到不应该在数据中的数据移动步骤在所有节点上都被复制。因此,要调查为什么我对几个复制的表执行了 DBCC PDW_SHOWSPACEUSED,而不是看到所有节点的行数相同,它们与某些节点的行数为零不同。我无论如何都不是专家,但我相信他们还有待完成的工作,但我找不到任何论坛、讨论或反馈页面来报告这些问题。

    【讨论】:

    • 请改写,以便更清楚地说明这是对问题的回答。这似乎更像是对其他答案之一的(相关)评论。
    猜你喜欢
    • 1970-01-01
    • 2016-06-30
    • 2012-06-12
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多