2012-11-17 33 views
0

我是SSIS的初学者,所以我可能会做一些愚蠢的事情。executePackage似乎需要很长时间才能启动子包

我有涉及在时间上循环异源队列和处理对象1的处理。这个过程目前正在'设定逻辑'和其下降的东西。我被要求以循环的方式对其进行修改,以便为我做出决定。

我选择在1个包中实现队列逻辑并在另一个包中实际处理。

这一切会比较好......考虑

我现在有过程和运行,但其缓慢的。每件9秒。显然,我不能提出这个解决方案。 :-)

一件事我注意到,1.5 - 每个循环为2秒都在ExecutePackage任务队列中的循环。

我无法弄清楚如何获得硬一些,我使用性能调整的闪烁的绿框方法。其他步骤似乎非常快。添加索引,将sql更改为sps,所有常用技巧都有所帮助。

  1. 是UI realiable在所有关于框变为白色/黄色/绿色的吗?某些任务在进度选项卡中报告时间,有些似乎不是。所以我在计算黄色时间。

  2. 应该调用一个子包是否昂贵? 1我做的更改是我将'RunInASeparateProcess'更改为FALSE。我这样做,是因为分装,否则会产生以下消息:

    错误:0xC0012024在脚本任务:任务“脚本任务”不能在该版本集成服务的运行。它需要更高版本的版本。 任务失败:脚本任务

  3. 我也做了阅读,似乎倡导多个包。任何人有任何计数器模式?我应该留在课程上吗?我开始更换为1包。复制/粘贴似乎不能很好地工作w/SequenceContainers。我还需要重新创建父包中的所有变量。可以,但我不知道这是答案。

  4. 有谁知道任何调整资源/网站/书籍,他们愿意分享。

更新 - 我一直在努力弄清楚问题所在。我在想这是传递变量值的包配置。我不认为是这样。我可以将变量传递给另一个包,它没有任何内容,并且速度很快。

我可以通过向它添加两个连接管理器来使平凡的子包变慢。 我突然意识到我可能会在主包和子包中创建并断开与Oracle服务器和SQL服务器的连接。

我在这个观察中正确吗?

有什么办法可以重用这两个软件包之间的连接吗? 当我谷歌,大部分我看到的是传递连接字符串的建议。

更新 - 我将两个软件包合并为一个。这个性能不是大约1.25秒每个项目,从大约9下降。我可以指出的唯一改变是我现在重复使用单个连接而不是多个连接。

谢谢,我感谢您提供的任何帮助。

格雷格

+1

您是否将自己的表现置于在BIDS中运行时的表现?你使用的是什么版本(我问你是因为你提到了编译,SSIS中没有真正的编译,但是2012比其他版本更接近)?由于您在BIDS中运行,您可能会看到额外的开销。尝试启用日志记录,并将其作为计划作业从测试服务器运行,然后查看性能如何。 –

+0

有时UI不可靠(2008版)。特别是当你在另一个软件包中有软件包时。它也比使用SQL作业在服务器上运行包慢。尝试在服务器上运行包含SQL作业的包并分析速度。 –

+0

威廉,我用术语编译不正确。我们有BIDS 2005.我会尝试在服务器上获取软件包。有变更控制程序来处理,所以我试图在我去那里之前尽可能地获得。 – greg

回答

1

一旦启用日志记录,我建议使用dtexec命令窗口中运行该程序包。尽管这并不能完美地复制服务器环境,但它确实具有以下优点:(a)消除BIDS作为潜在的性能问题,以及(b)无需跳过变更控制环就可以做的事情。

+0

今天我会研究这个。我做了一个单一的整体软件包(叹气),它的运行速度足以在一天左右的时间内从我们的数据开始追赶。 我正在看其他一些问题,希望将1.3秒降低到〜.5,然后我会看看dtexec和配置,以备大日子。 感谢您的回答 – greg

相关问题