Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql SSIS包概念需要帮助_Tsql_Ssis - Fatal编程技术网

Tsql SSIS包概念需要帮助

Tsql SSIS包概念需要帮助,tsql,ssis,Tsql,Ssis,当数据在SSIS包中从源复制到目标时,源是使用“group by”关键字的sql查询,目标是表,行位置的数据是否必须与目标表中相同行位置的数据匹配 萨加尔这是一个性能问题,真的。表没有逻辑顺序。当然,数据在磁盘上具有物理顺序,并且I/O对性能有显著影响,因此最佳方法将取决于a)如何填充表(完全刷新与增量更新)和b)如何在下游使用表 可以在目标表上创建一个聚集索引,其列与GROUPBY子句中的列相同。这将按照聚集索引的键对磁盘上的数据进行物理排序 如果每次运行包时都完全重新填充目标表(drop r

当数据在SSIS包中从源复制到目标时,源是使用“group by”关键字的sql查询,目标是表,行位置的数据是否必须与目标表中相同行位置的数据匹配


萨加尔

这是一个性能问题,真的。表没有逻辑顺序。当然,数据在磁盘上具有物理顺序,并且I/O对性能有显著影响,因此最佳方法将取决于a)如何填充表(完全刷新与增量更新)和b)如何在下游使用表

可以在目标表上创建一个聚集索引,其列与GROUPBY子句中的列相同。这将按照聚集索引的键对磁盘上的数据进行物理排序

如果每次运行包时都完全重新填充目标表(drop recreate或truncate),这可能是一个很好的设计,因为传入数据的顺序可能是正确的


如果每次运行包时都以增量方式更新目标表,这可能是一种糟糕的设计,因为数据库必须在每次插入时将传入数据与现有数据交错,这可能会非常昂贵。

您可以使用聚集索引强制按顺序存储内容,但正如Peter指出的,这会对增量更新造成性能损失


你担心把事情安排得井井有条吗?这是对您的查询的排序,或者您应该创建一个标准化视图,按照您想要的顺序显示内容。

您能澄清您的问题吗?我不明白你在问什么。。。。如何按照源“结果集”的排序方式对目标表进行排序??源查询使用来自不同表和GROUPBY子句的聚合。。。这里已经有一个聚集索引;但是,我在源查询的“GROUPBY”子句中使用的列上创建了非聚集索引。因此,我使用了使用ORDERBY子句的select查询,并使用GROUPBY子句中的列。但是,这一行仍然不匹配。我这个问题的主要目的是找到一个答案,这样我就可以一行一行地匹配源目标。不需要聚集或非聚集索引来协调源和目标。非聚集索引将减慢表插入操作的速度,因此,如果您仅为此目的创建它,则可能需要删除它。您需要做的是a)隔离特定插入的源数据和目标数据,以及b)逐行比较。你能把两边的数据分开吗?插页是否可复制?从计数(*)开始,然后进行更详细的对账。