【发布时间】:2011-07-29 18:11:27
【问题描述】:
在存储过程中使用 INSERT INTO 语句,还是使用 DTS/SSIS 数据转换任务,哪种方式向表中插入大量数据更有效和/或被认为是最佳实践?源数据与目标表位于同一 SQL 服务器上。
【问题讨论】:
标签: sql sql-server database database-design
在存储过程中使用 INSERT INTO 语句,还是使用 DTS/SSIS 数据转换任务,哪种方式向表中插入大量数据更有效和/或被认为是最佳实践?源数据与目标表位于同一 SQL 服务器上。
【问题讨论】:
标签: sql sql-server database database-design
如果您的转换很简单,我建议您这样做;也就是说,如果它们可以很容易地在几个 SELECT 语句中编码,那么带有一些 SELECT INTO 语句的简单存储过程是您的最佳选择。非常高效,需要维护的活动部件更少。
另一方面,如果您的转换逻辑非常复杂和/或多变,请考虑使用 SSIS。它的存在是为了让您能够建模和维护复杂的多步骤转换。
祝你好运!
【讨论】:
我认为你必须先问自己一堆问题才能回答这个问题。这是我经历的……
【讨论】:
我总是使用批量插入。您将需要删除索引并在最后重建它们。
http://msdn.microsoft.com/en-us/library/ms188365.aspx
ALTER INDEX [indexName] 表禁用
批量插入
ALTER INDEX [indexName] ON Table REBUILD
【讨论】: