我有一个简单的DataFlowTask,它从Netezza源中提取数据,并通过OLE DB Source / Destination组件加载到Oracle Table。负载适用于Dest - Table或View下拉选择要加载和映射列的表。
但是,此选项非常慢,因为它在每次记录插入后按记录执行记录并提交事务。由于Table或View Fast Load选项在批处理级别工作且速度更快,我想配置此选项并从下拉列表中选择表。
选择表格后,单击Column Mappings选项卡,生成错误
注意:
答案 0 :(得分:1)
您使用的Oracle驱动程序似乎不支持快速加载/批量插入。例如,Microsoft OLE DB Provider for Oracle不支持快速加载。您正在使用SSIS 2012,因此您应该使用Microsoft连接器" Microsoft连接器版本2.0 for Oracle by Attunity Jump"它与您的Oracle版本匹配,以获得更好的性能。我还没有尝试,但根据文档,它应该支持批量加载。有关详细信息,请参阅以下链接:
https://social.technet.microsoft.com/wiki/contents/articles/1957.ssis-with-oracle-connectors.aspx
答案 1 :(得分:1)
SQL Server 2008,2008 R2和2012(企业版和开发人员版)支持使用Integration Services(SSIS)包批量加载Oracle数据。 Attunity的Microsoft Connector for Oracle通过其高速连接器在从Oracle加载或卸载数据期间提供最佳性能。有关详细信息,请参阅使用Microsoft Connector for Oracle通过Attonity与SQL Server 2008 Integration Services(http://msdn.microsoft.com/en-us/library/ee470675(SQL.100).aspx)。 SQL Server 2005以及SQL Server 2008,2008 R2和2012的非企业版和非开发人员版本不提供批量加载Oracle数据的开箱即用选项。
当您使用Oracle的Oracle OLE DB提供程序时,OLE DB目标的快速加载选项不可用,因为提供程序未实现IRowsetFastLoad(http://msdn.microsoft.com/en-us/library/ms131708.aspx)接口。 此外,SSIS的当前设计使得快速加载选项仅适用于SQL提供程序。即使提供程序实现IRowsetFastLoad接口,这些选项也不适用于任何其他提供程序。
不推荐使用Microsoft OLE DB Provider for Oracle,建议不要将其用于8i之后的Oracle版本。 http://support.microsoft.com/kb/244661
在SQL Server 2005以及SQL Server 2008,2008 R2和2012的非企业版和非开发人员版中,开箱即用的SSIS组件实现单行插入以将数据加载到Oracle。使用单行插入时,可能会出现以下问题。
对于这些版本,可以选择在加载Oracle数据时实现最佳性能。本文讨论了这些替代方案。
答案 2 :(得分:0)
要使用Oracle目标的快速加载选项,请使用Oracle Attunity Destination而不是OLEDB。我用过这个,观察到500X的性能提升。
https://technet.microsoft.com/en-us/library/ee470675(v=sql.100).aspx