【问题标题】:Execute SQL Task in SSIS - OLEDB Vs Ado.Net connection which one is better?在 SSIS 中执行 SQL 任务 - OLEDB 与 Ado.Net 连接哪个更好?
【发布时间】:2017-04-06 14:39:36
【问题描述】:

我将运行一个存储过程,该过程更新同一服务器中的 3 个包含 6000 万条记录的表。我目前使用的是 OLEDB 连接而不是 ADO.Net 连接。

积分:

目前在管理工作室运行了 21 分钟。

如果我使用 OLEDB 连接,它会在 32 分钟内运行

如果是使用 ADO.net 连接,它会运行 48 分钟

我需要使用哪个连接管理器来获得大约 21 分钟的时间范围?有什么最佳实践吗?我正在使用 SQL Server 2016 和 SSIS 2016。

【问题讨论】:

  • 通常 OLEDB 最适合我的应用程序。之所以需要这么长时间,是因为它必须通过 SSIS 代理连接到服务器,而 SSMS 可以让您直接连接到服务器。您是否尝试过在没有 SSIS 的情况下在服务器中设置作业。
  • 通过 sql 任务作业也需要大约 21 分钟。即使我发现 OLEDB 是更好的选择......但我仍在分析两者的工作原理,试图更好地理解这一点,以便我可以使用适当的任务......
  • 我尝试使用 sql profiler 来检查任何差异。但在我的示例数据中没有发现任何内容。
  • ADO.net 有一个区别,它的作用就像一个游标,因此如果我处理超过 3000 万条记录,它会非常慢...如果它是

标签: sql-server tsql ssis sql-server-2016


【解决方案1】:

如何实现更新操作?如果使用 OLEDB 命令,则需要时间。我的建议是你可以尝试并行处理。而不是在一个 Dataflow 任务中完成所有操作。您可以使用批处理并同时运行多个 DFT。它会大大缩短时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多