问题描述
我使用 vs 2017 Enterprise 进行开发,并使用内部 Azure 运行时环境来运行 ssis 包。我正在读取约 150 万行的 oracle 表并写入 MS sql DAN 数据库。谁能解释我在下面描述的性能特征?似乎 OLEDB Oracle 驱动程序非常有效,但它与 OLEDB SSIS 任务一起运行得非常糟糕。以下是运行时特征:
- 带有 Oracle Ado.net 驱动程序的 ADO.net 任务:加载 ms sql 表需要大约 32 分钟
- 带有 Oracle OLEDB 驱动程序的 ADO.net 任务:加载 ms sql 表需要大约 5 分钟(获胜者)
- 使用 Oracle OLEDB 驱动程序的 OLEDB 任务:加载 ms sql 表需要大约 20 分钟
解决方法
好的,我想我明白了。我一直认为 MS Sql 写入端是理所当然的,但是在我的环境中,您可以在 MS Sql 的 OLEDB 目标任务中指定两个驱动程序, SQLOLEDB.1 和 SQLNCLI11.1 。 5 分钟写入的作业是使用 SQLOLEDB.1 写入 MS Sql。需要大约 20 分钟的第三项工作是使用 SQLNCLI11.1 。具有讽刺意味的是,SQLOLEDB.1 较旧,许多组织都在弃用它,尽管它要快得多。我很快就能证明我的怀疑,并报告最终结果。