我们将SQL Server PDW 设备用于我们的数据仓库。我们仓库中的一个表是一个复制表,大约有 2000 万行。作为我们 ETL 过程的一部分,我们需要使这个维度的旧记录过期;但是,我们看到更新少量记录 (<100) 需要 1 个多小时才能完成。如果可以的话,这是我想改进的地方。
当然,我想到的一个选择是将这个维度从复制更改为分布式。我的测试表明,它可以解决 ETL 过程耗时较长的问题(从 1.5 小时缩短到 30 秒),但是针对此维度的分布式版本的所有连接都会受到影响,因为连接几乎从不基于相同的分布柱子。当我查看其中一些查询的执行计划时,我通常会看到ShuffleMove或BroadcastMove操作。
所以我对 PDW 大师的问题是:
还有什么可以做的以提高此维度的复制版本中更新记录的性能吗?
同样,迁移到分布式表似乎不是最好的解决方案,因为它会影响数百个已编写的 SQL 查询和其他人开发的报告。
我们有一个按日期列分区的表。表的主键是此日期列和其他 4 个列的组合键。
我们正在考虑从该表中删除主键约束并简单地创建一个新的非聚集索引。
由于分区列是主键的一部分,如果我们删除主键约束,分区是否会受到影响?
我正在使用一个 Excel 文件,该文件具有不同格式的日期,但是当我尝试将其转换或将其转换为 SQL DATETIME 时,其中一种格式给我带来了一些痛苦。例如:
Thu Oct 16 13:40:19 2014,Tue Apr 1 12:20:40 2014等等。
基本上格式是ddd MM dd HH:mm:ss yyyy.
我想知道是否有某种日期样式可以让我在一行中进行转换。我可以为此编写一个函数,但我想知道是否有更优雅的解决方案。我谷歌搜索没有运气。