数据流任务缓冲区大小
我创建了一个包来提取超过200,000条记录。拉动表现有点慢。要提高性能,即更快速多少DefaultMaxRows和DefaultBufferSize我应该给?我们如何设置缓冲区?有没有计算?数据流任务缓冲区大小
SSIS在优化性能方面做了下降工作。对于更好的缓冲区性能,您可以从源中删除不需要的列,并根据源值适当地设置每列的数据类型。
但是,如果您更改缓冲区大小的值,可能会对性能产生负面影响(页面损坏开始)。
但是,您可以尝试启用记录BufferSizeTuning事件以了解缓冲区包含多少行。有时将它们设置为更高的值可以提升性能,但只限于所有缓冲区都适合内存。
从你的评论中,简单的答案是:
如果你想要速度,不要使用OLE DB命令。 OLE DB命令需要每行执行一次。如果你想加载200,000条记录,这也意味着200,000个执行你的OLE DB命令。
也许你可以解释你的ole db命令的作用,我们可以找到更快的解决方案?
我正在使用OLE DB命令更新目标表中的行 – 2012-02-01 03:32:18
然后,您将针对每行发出一个更新,这听起来不太快。您可以考虑使用OLE DB目标将新数据存储在表中,然后使用控制流中的SQL命令任务运行MERGE语句。这可能会产生更好的表现(鉴于你在2008年或更新) – cairnz 2012-02-01 11:29:44
这是从什么拉? – cairnz 2012-01-09 09:22:50
首先从Oracle DB中提取。然后从SQL Server那里拉动本身越来越慢! – 2012-01-17 03:43:30
当CPU速度变慢时,CPU负载和内存使用情况如何?当它发展缓慢时,你正在做什么其他转变?它是从远程还是本地数据提取?所有这些都会影响性能,并且事先不知道更多细节,只会猜测问题出在哪里。 – cairnz 2012-01-17 07:39:59