SSIS无法与OraOLEDB.Oracle.1提供程序并行运行

时间:2019-02-25 06:18:46

标签: oracle ssis parallel-processing oledb oracle12c

我们在Oracle 11 Client中拥有一个SSIS软件包,我们将以30分钟至1小时的运行时间来运行我们的日常查询。

我们必须升级oracle客户端,因为其他Oracle来源之一也已升级。

升级到Oracle 12c后,我们的日常作业运行时间增加了。 oracle DBA说,它不并行运行,因为它仅占用一个处理器。

当我们从SQL Developer或toad运行相同的查询时,它并行运行。但是如果我们从SSIS OLEDB Source组件运行,则它不会并行运行。

我对这种行为不太了解。任何解决方案都会有所帮助。 如果需要,请问我更多的澄清。

1 个答案:

答案 0 :(得分:0)

试图找出问题所在

我尝试搜索此主题,我没有找到很多信息,但我认为它基于OLEDB Connection Manager中提供的OLEDB Connection字符串。

查看以下Oracle文档,它可能会给您一些见解:

在上面的链接的 Distributed Transactions 部分中,他们提到:

  

DistribTX属性指定是否启用会话以注册分布式事务。有效值为0(禁用)和1(启用)。默认值为1,表示已为分布式事务登记启用会话。

     

为分布式事务登记启用的会话不能运行使用直接路径负载和Oracle数据库的并行DML功能的语句。这些语句作为常规路径串行语句执行。

我不确定这是否有帮助,但是尝试一下也不错。


Oracle Attunity连接器

与其使用OLEDB Source来从oracle读取数据,不如使用Oracle Attunity Connector for SSIS更好,它可以保证比OLEDB Source更高的性能:

  

Microsoft已选择Attunity用于Oracle和Teradata的高速连接器,以将其包含在SQL Server Integration Services(SSIS)中。