在SSIS中截断表

时间:2015-02-09 18:20:45

标签: ssis truncate

我在SSIS(在visual studio 2013中定义)中有一个简单的数据流,它使用SQL从一个sql server实例的表A中提取数据,然后将其添加到另一个SQL Server实例的表B中。 p>

截断表B中数据的最佳做法模式是什么?像这样的截断语句:

TRUNCATE TABLE B

在表A的select语句之后 - 特别是当你有一个相当大的表来'传输'时?

1 个答案:

答案 0 :(得分:1)

我在这种情况下做的一件事是创建同一个表的两个副本,然后创建一个指向具有当前表名称的一个或另一个的视图。

然后,SSIS包确定正在使用哪个表,并将表的连接设置为填充到另一个表。

然后exec SQl任务截断当前未使用的表。您可能还想在此时删除任何索引。

然后数据流填充当前未使用的表。

然后重新创建您删除的所有索引。

最后,exec SQL任务将删除并创建视图以使用刚刚填充的表而不是另一个表。

被引用表的总停机时间?对于drop和create视图,通常不到一秒钟,无论填充表格需要多长时间。