oracle SSIS数据流-批量插入变得非常慢

o3imoua4  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(205)

我遇到了SSIS数据流的问题。我们使用OleDB驱动程序从Oracle获取一个表,并在SQL Server中的数据库表中插入批量。Oracle数据库有超过1500万行。SQL Server表没有索引。我们开始这个过程,在SQL Server表上做一个截断,并从Oracle表重新导入数据。
我们正在迁移SQL Server。旧体系结构在具有16 GB RAM的物理Windows Server 2012上使用SQL Server 2012示例,CPU是具有24个逻辑处理器的Intel(R)Xeon(R)CPU E5-2640 0@2.50 GHz。我们使用SSIS版本11.0。此体系结构仍在运行,它在大约10分钟内处理数据流。
新架构是虚拟Windows Server 2019上的SQL Server 2022示例,具有16 GB RAM,CPU是Intel(R)Xeon(R)Gold 5218 CPU@2.30GHz,具有4个虚拟处理器。我们现在使用SSIS版本16.0。它在大约90分钟内处理SQL Server 2022,比我们旧的物理服务器慢大约9倍。
在新的服务器上,磁盘上的I/O开始时很高(大约3,000,000 B/秒),在达到3- 4 M行之后逐渐减慢到大约200,000 B/秒。CPU在新服务器上大约为30%(在旧服务器上小于10%),使用的RAM为5/16 GB(在旧服务器上为13/16 GB)。
如果我在连接到服务器的自己的计算机上运行数据流,或者如果我直接在新的SQL Server上的SQL代理上运行作业,也会发生同样的事情。
我检查了数据流属性,我们没有在旧架构上使用AutoAdjustBufferSize,所有缓冲区值都是默认值。我尝试更改它们并在新服务器上部署,但它并没有提高SSIS作业的性能。

py49o6xq

py49o6xq1#

我刚刚发现了这个延迟的原因。我想分享解决方案,如果有人发现自己陷入了类似的问题。
似乎安装在新SQL服务器上的Oracle客户端版本19c与Oracle数据库的版本不一致,Oracle数据库仍然是版本11g。我们首先安装了版本12c客户端,这导致性能提高了约40%。
然后,我们安装了Oracle客户端的11g版本,与客户端的19c版本相比,性能提高了90%以上,现在比我们的旧体系结构更快。

相关问题