标签: sql-server-pdw

更新大复制维度 (SQL Server PDW)

我们将SQL Server PDW 设备用于我们的数据仓库。我们仓库中的一个表是一个复制表,大约有 2000 万行。作为我们 ETL 过程的一部分,我们需要使这个维度的旧记录过期;但是,我们看到更新少量记录 (<100) 需要 1 个多小时才能完成。如果可以的话,这是我想改进的地方。

当然,我想到的一个选择是将这个维度从复制更改为分布式。我的测试表明,它可以解决 ETL 过程耗时较长的问题(从 1.5 小时缩短到 30 秒),但是针对此维度的分布式版本的所有连接都会受到影响,因为连接几乎从不基于相同的分布柱子。当我查看其中一些查询的执行计划时,我通常会看到ShuffleMoveBroadcastMove操作。

所以我对 PDW 大师的问题是:

还有什么可以做的以提高此维度的复制版本中更新记录的性能吗?

同样,迁移到分布式表似乎不是最好的解决方案,因为它会影响数百个已编写的 SQL 查询和其他人开发的报告。

data-warehouse sql-server sql-server-pdw

8
推荐指数
2
解决办法
1629
查看次数

哪些情况可以从 Reduce、Replicate 和 Redistribute 连接提示中受益?

SQL Server 2008 开始的From 子句文档简要提到了 3 个连接提示及其基本机制:

  • 降低
  • 复制
  • 重新分配

然而,似乎没有太多关于何时可能需要使用它们的信息。

似乎它们可以与散列、循环和合并结合使用,这些已经被理解为这个问题的目的。

文档中的相关部分:

对于 SQL 数据仓库和并行数据仓库,这些联接提示适用于两个分布不兼容的列上的 INNER 联接。它们可以通过限制查询处理期间发生的数据移动量来提高查询性能。SQL 数据仓库和并行数据仓库的允许连接提示如下:

  • REDUCE
    减少要为联接右侧的表移动的行数,以使两个分布不兼容的表兼容。REDUCE 提示也称为半连接提示。

  • REPLICATE
    将连接左侧表的连接列中的值复制到所有节点。右侧的表连接到这些列的复制版本。

  • REDISTRIBUTE
    强制将两个数据源分布在 JOIN 子句中指定的列上。对于分布式表,Parallel Data Warehouse 会执行shuffle move。对于复制表,并行数据仓库将执行修剪移动。要了解这些移动类型,请参阅并行数据仓库产品文档中“了解查询计划”主题中的“DMS 查询计划操作”部分。当查询计划使用广播移动来解决分发不兼容的连接时,此提示可以提高性能。

join sql-server hints sql-server-pdw azure-sql-data-warehouse

8
推荐指数
1
解决办法
364
查看次数

SQL Server 2016 中的服务器角色

SQL Server 2016 中有 3 个新的服务器角色:

  • 中等
  • 超大号

知道这些是做什么用的吗?谷歌没有提供有关这些的任何信息。

在此处输入图片说明

data-warehouse sql-server role sql-server-pdw sql-server-2016

6
推荐指数
1
解决办法
687
查看次数