如何优化 SSIS 中将数据下载到服务器

How to optimize the downloading of data to the server in SSIS

美好的一天。 需要将记录从 Oracle 数据库获取到 SQL 服务器中的数据库。使用 SQL 命令执行的数据源类型 (ODBC),我根据我的要求获取所有可能的索引。这个过程运行良好,问题是它需要很长时间,我需要快点。该过程无法与查找一起执行,需要合并或合并连接,只需在特定条件下从 Oracle 加载一个 table 到 SQL。

感谢您的帮助

检查你的限制因素是什么。一般有3点要检查:

  1. 远程服务器很慢。 源数据库 运行 内存不足、读取速度或空闲 CPU。用没有 WHERE 子句或 JOINs 的直接 SELECT 语句代替你的查询,看看你的 SSIS 包是否 运行s 更快。

  2. 目标数据库。 您可能启用了索引,HDD 上的写入延迟很高或不够 CPU。 运行 为您的目标 INSERT table 并查看需要多长时间。

  3. 问题可能出在中间:在 2 个服务器之间传输。网络通常是主要瓶颈。 SSIS 是否与 SQL 服务器托管在同一台服务器上?那么您在专用 SSIS 机器上有 2 个网络连接 + 可能的硬件瓶颈。

根据瓶颈有不同的解决方案。

如果您有网络容量并且在 Oracle 上每个查询的瓶颈是 1 CPU,那么您可以水平分区数据(ID 1 到 100、101 到 200 等);建立与 Oracle 的多个连接并在多个流中加载数据。流的数量比 Oracle、SSIS 或 SQL 服务器上的 CPU 数量少 1(以较小者为准)。