在这么晚的时候这样做似乎很疯狂,但是......
我正在使用 Rocket Software UniVerse 源和 SQL 目标重建一些 ETL 基础设施。旧的目标平台是 Windows Server 2003 上的 SQL 2000,新平台是 Windows Server 2012 上的 SQL 2012。在这两种情况下,都使用 ODBC 驱动程序连接到源。在新平台上一切似乎都运行良好,但包的执行时间呈指数级增长。例如,一个包含大约 130 万行和 28 列的表使用 SQL 2000/DTS 大约需要一个小时,而使用 SQL 2012/SSIS 则需要超过 3.5 小时。两台 SQL 服务器都是在 Xen Server 上虚拟化的,2012 服务器有更多的 RAM 和更多的 vCPU,这两台机器在磁盘基础设施方面都没有优势。在包执行期间,2012 服务器上没有任何指标(内存、磁盘 IO 等)出现红线(或者甚至接近)。
我已经阅读了几篇描述相同场景的论坛帖子,但似乎没有一个真正适合我的解决方案。由于所有这些帖子都过时了(大多数从 DTS 到 SSIS 的转换发生在 SQL 2005 年代),我很好奇那里是否有任何更新的信息。
这些包是非常简单的表格副本,没有转换。我正在为我的源连接使用“SELECT column, column,.. FROM sourcetable”,为我的目的地使用“表或视图 - 快速加载”。减速似乎是等式的源头,尽管我不能确定。
任何帮助表示赞赏。