我敢肯定,这是一个非常模糊的问题,很难回答,但我将不胜感激有关该主题的任何一般性想法。
让我给你一个快速的背景。
十年前,我们曾经编写数据加载,从遗留应用程序读取输入平面文件并将它们加载到我们的 Datamart。最初,我们的加载程序是用 VB6 编写的,并在平面文件中游标,并为每条记录执行以下一般过程:
1)查看记录。如果找到,更新它 2) 否则插入新记录
然后我们最终改变了这个过程,使用 SQL Server 对临时表中的平面文件进行 DTS,然后我们将在临时表上与目标生产表执行大规模集合基础连接,从临时表中获取数据并使用它更新目标表。插入了未加入的记录。
这是流程的简化,但本质上,流程从迭代方法变为“基于集合”,不再一次执行更新 1 条记录。结果,我们获得了巨大的性能提升。
然后,我们在 DLL 中创建了我认为的一组强大的共享函数,以使用这种方法执行常见的函数/更新模式。它极大地抽象了开发,真正减少了开发时间。
然后,ETL 工具 Informatica PowerCenter 出现,mgt 希望对该工具进行标准化并重写使用 DTS 的旧 VB 负载。
我听说 PowerCenter 会迭代处理记录,但我知道它确实做了一些优化技巧,所以我很好奇 Informatica 的表现如何。
有没有人有任何使用 DTS 或 SSIS 能够做出直觉性能预测的经验,即哪个通常会表现更好?