从ODBC源将数据合并到SQL Server数据库的最有效方法

时间:2010-10-29 09:23:42

标签: .net sql sql-server sql-server-2008 odbc

我需要不断地将数据从ODBC数据源合并(插入/删除)到SQL Server 2008数据库(行数从一行到100000行不等)

您认为最有效的方法是什么(使用.net 3.5):

  1. SqlBulkCopy用于临时表,然后使用临时表作为源,使用Merge命令调用存储过程。
  2. 调用具有表值参数的存储过程,其中数据作为参数(SqlDbType.Structured)发送,表参数用作合并命令的源。 通过表参数发送的数据是否在批量操作中发送到服务器?在有>的情况下使用它是否可能和有效? 1000行?
  3. 使用合并命令调用存储过程,该命令使用OpenRowset批量从ODBC源获取数据(使用链接服务器?)
  4. 任何其他方式。
  5. 谢谢!

1 个答案:

答案 0 :(得分:0)

这种类型取决于导入的触发器。如果它将每10分钟安排一次,或者我将使用选项1或创建一个SSIS包,它将执行与选项1相同的操作.JNK是正确的,使用永久表会更好,它将避免分配如果需要,它将允许您从中间选择过程。

在SSIS中,您的工作流程将如下所示:

  • truncate staging table
  • 创建数据流任务以将数据从源导入到登台表,并在需要时处理错误
  • 调用存储过程以合并数据

创建包后,您可以通过SQL代理安排它。确保使用包属性上设置的DontSaveSensitiveData选项创建包,这样就不会出现奇怪的加密错误。