在设计时或运行时性能受到影响之前,SQL Server 2005 SSIS包定义有多大?我不是在谈论传递的数据集的大小,甚至不是要返回的列数。我只是谈论包中使用的序列,任务,数据流任务和变量的数量。我有一个包我不到实现的一半,我总共有20个序列(一些嵌套),16个数据流任务和28个非数据流任务(主要是执行SQL和脚本任务) 。到目前为止,.dtsx文件本身是4MB。
当我完成时,我可以看到包装容易翻倍或甚至是当前尺寸的三倍。我还没有看到任何性能问题,但我想知道我是否会遇到任何性能问题。有没有其他人遇到大包定义的设计时或运行时性能问题?包装尺寸限制是否有最佳实践?
答案 0 :(得分:2)
听起来好像是时候将该包拆分为单独的包,并使用执行包任务来执行它们。那太大了。
答案 1 :(得分:1)
大包装出现两个问题。 @Andrew提到的第一个是维护大型软件包而不管性能问题。特别是如果你在团队环境中工作,如果你检查了一个大包,你将不得不小心合并更改等。我在SQL 2005中看到的第二个问题与以下事实有关: BIDS中SSIS的运行时是一个32位进程。对于您提到的大型软件包,在您尝试在开发环境中执行该软件包时,很可能会很快遇到内存不足问题。大多数人建议将软件包拆分为更小的单元,以简化团队开发和单元测试。
以下是知识库文章的具体建议
http://support.microsoft.com/kb/952110/en-us
提到7mb为.dtsx大小,可能会引发问题。
如上所述,根本原因是SSIS / BIDS(DevEnv.exe)的运行时是32位进程,并且该exe中的许多子系统创建了自己的私有堆,不释放内存(xml,oledb,等)看到对类似问题的回答:
http://social.msdn.microsoft.com/forums/en-US/sqlintegrationservices/thread/7ead0bee-6f04-4778-83b7-0fd666833113/
答案 2 :(得分:0)
我不确定什么是太大,但对我来说这些类型的工具的继承问题是你最终得到一堆乱画的图形图片,嵌入的对话框和属性使得噩梦匆忙。如果你问我,什么都不比原始代码好。你所看到的就是你得到的。然而,做一个人可以做原始代码,制作小易消化的部分,并以最合理的方式将它们拼凑在一起,这样你就可以把它们包裹起来。使用代码比SSIS更容易做到这一点,但你仍然可以尝试这种类型的设计。
总而言之,如果包裹变得如此庞大和复杂,你无法将它包裹起来,那就太大了。