Sql server 2008 Sql Server 2008 R2上的SSIS性能

Sql server 2008 Sql Server 2008 R2上的SSIS性能,sql-server-2008,ssis,64-bit,sql-server-2008-r2,windows-server-2008-r2,Sql Server 2008,Ssis,64 Bit,Sql Server 2008 R2,Windows Server 2008 R2,我对Sql Server 2008 R2中的SSIS包有一个非常奇怪的性能问题。 以下是事实: 最近,我们从Sql Server 2005(在Windows Server 2003 R2 32位上)迁移到Sql Server 2008 R2(在Windows Server 2008 R2 64位上) 除了一个SSIS包上的一些性能问题外,一切似乎都很好。 如果我从PC上运行它,它会在几分钟内(大约4/5)正常运行,如果我通过SQLServerManagementStudio连接到集成服务并从那里

我对Sql Server 2008 R2中的SSIS包有一个非常奇怪的性能问题。 以下是事实: 最近,我们从Sql Server 2005(在Windows Server 2003 R2 32位上)迁移到Sql Server 2008 R2(在Windows Server 2008 R2 64位上)

除了一个SSIS包上的一些性能问题外,一切似乎都很好。 如果我从PC上运行它,它会在几分钟内(大约4/5)正常运行,如果我通过SQLServerManagementStudio连接到集成服务并从那里启动包,也会发生同样的情况

但是,当我从Sql Server代理运行它时,执行时间从5分钟到一个多小时。。。我对旧服务器没有这样的问题!我还尝试在32位模式下运行包,在一些运行中,它似乎更快,但它是非常随机的。。。但是,它从未达到SQLServer2005上的良好性能

我不知道。。。起初我认为这是一个内存问题,因为我没有给Sql Server提供最大内存限制,而其他一些包在同一时间运行时出现问题,所以我扩展了服务器使用的RAM(它在VMWare上运行),现在机器有8GB的RAM,Sql Server的最大服务器内存是4GB。另一个包现在没有崩溃,但这仍然是随机执行时间

猜猜看

按照天数的执行时间表

Start Time          Execution Time
12/17/2010 06:15 00:49:43
12/16/2010 17:54 01:12:26
12/16/2010 17:18 00:06:29
12/16/2010 16:53 00:05:23
12/16/2010 16:10 00:24:23
12/16/2010 06:15 00:19:26
12/15/2010 06:15 00:07:19
12/14/2010 06:15 00:11:26
12/13/2010 06:15 00:17:30
12/12/2010 06:15 00:44:59
12/11/2010 06:15 00:11:59
12/10/2010 06:15 00:34:19

还有什么在运行?当计划运行此包时,是否有用户运行查询(谁可以锁定表)或其他包接触相关表?当你运行它的时候,你会看到阻塞锁或者其他类似的东西吗

在我看来,生产批处理执行环境很可能不如开发环境那么好、安静和可控


持有数据锁的用户或相关包可能会解释执行时间的随机分布。

我找到了解决方案

问题是服务器上创建缓冲区时出现内存问题

我部分解决了增加默认缓冲区大小(MB和行数)的问题,并完全解决了删除所有排序和合并组件的问题,我使用查找使用Transform Cache构建的自定义缓存替换它们


我仍然不明白为什么SQLServer2005与WindowsServer2003以及开发中的分配工作正常,但是现在包已经修复了

在这些表上,可能只有一些读取和一些插入,而没有更新。然而,当我从VisualStudio运行它时(在我的生产表上运行),这并不是一个问题,它在2005年运行时也是一样的。也许我错过了一些调整性能的配置,但我几乎到处都看了(我想),当时我唯一能想到的是用户权限。您是在代理下运行包还是作为SQL Server代理运行包?如果以代理用户身份登录并运行包,会发生什么情况?