微软BI开拓者

首页 » 数据仓库专区 » SSIS使用与管理 » 关于SSIS性能优化的问题!欢迎讨论!谢谢!
dbasys - 2008-3-27 15:38:00
1 如何设置包的两个参数DefaultBufferSize和DefaultBufferMaxRows的大小更加合理?
如果计算机内存足够大是不是越大越好?
2 怎样利用Execution Trees和Execution Plans优化包?
3 关于包的日志,许多信息更应当关注的是哪些日志信息?
如OnError,OnTaskFailed等。
4 除了用日志,是否还有有更好的途径,监控SSIS以及各个包的执行情况(如包的开始时间,结束时间,数据处理记录数,包执行结果等)?
我了解到C#能执行SSIS包,是否能够通过代码实现以上需求?

欢迎各版主,各高手大侠,希望更加高效的利用SSIS开发的XDJM提出宝贵建议,共同学习交流!
非常感谢!非常感谢!
dbasys - 2008-3-27 15:41:00
自己顶一下!希望得到我敬佩的几位版主的回答!
哈哈!
:default5: :default5: :default5:
swordapple - 2008-3-27 20:31:00
执行SSIS包,用C#实现起来很简单,你可以把包的执行信息都写到日志中。
附件中我写了个简单的代码来执行SSIS包,你可以自己添加你想要的功能。

附件: RunSSISPackage.rar
dbasys - 2008-3-28 13:18:00
谢谢回答!楼上例子虽然还不能,完全回答我的问题!但也非常值得借鉴,非常感谢!
希望版主回答!
swordapple - 2008-3-31 19:33:00
数据流引擎通过计算一行数据的估计大小来开始调整其缓冲区大小的任务。 然后引擎将估计的单行大小与 DefaultBufferMaxRows 值相乘以获得缓冲区大小的初步工作值。
1、如果该结果大于 DefaultBufferSize 值,引擎将减少行数。
2、如果该结果小于内部计算的最小缓冲区大小,引擎将增加行数。
3、如果结果在最小缓冲区大小和 DefaultBufferSize 值之间,引擎将调整缓冲区大小,以尽可能接近估计行大小乘以 DefaultBufferMaxRows 值得出的结果。
4、默认缓冲区大小为 10 MB,最大缓冲区大小为 100 MB。 默认最大行数为 10,000。

在有足够的可用内存时,请使用少量的大缓冲区,而不是大量的小缓冲区。 换而言之,可以通过减少存放数据所需的缓冲区总数并在一个缓冲区中放置尽可能多的数据行来改善性能。
dbasys - 2008-4-7 11:20:00
谢谢!
我现在主要是修改
EngineThreads和
MaxConcurrentExecutables
两个参数!性能还是会好些的!
suntt - 2008-4-16 14:42:00
增加enginethread也是很有效果的
但也不是越多越好,我的经验是设置为逻辑cpu数目(若服务器是2cpu×4核=8逻辑cpu)
xiaobailong - 2008-5-21 17:28:00
我个人感觉优化SSIS主要还是在设计方面下功夫,这些属性应该不会起太大的作用,比如:并行机制、让每个组件都发挥出自己的优势就ok了。
1
查看完整版本: 关于SSIS性能优化的问题!欢迎讨论!谢谢!