当数据在SSIS包中从源复制到目标时,源是使用'group by'关键字并且destination为表的sql查询,行位置的数据是否必须与数据匹配在目的地表的同一行位置??
Sagar的
答案 0 :(得分:1)
这是一个性能问题,真的。表没有逻辑顺序。或者当然数据在磁盘上有物理顺序,I / O对性能有显着影响,因此最佳方法取决于a)如何填充表(完全刷新与增量更新)和b)如何该表用于下游。
您可以使用与GROUP BY子句中相同的列在目标表上创建聚簇索引。这将通过聚集索引的键对磁盘上的数据进行物理排序。
如果目标表在每次运行包时完全重新填充(drop-recreate或truncate),这可能是一个很好的设计,因为传入的数据可能是正确的顺序。
如果每次运行包时目标表都会逐步更新,这可能是一个糟糕的设计,因为数据库必须将输入数据与每个插入的现有数据交错,这可能非常昂贵。
答案 1 :(得分:1)
您可以使用聚簇索引强制以有序的方式存储内容,但正如Peter所说,这对增量更新有性能损失。
你是否因为整理好事而受到谴责?这是您的查询的ORDER BY,或者您应该创建一个标准化的视图,以您想要的顺序显示事物。