【问题标题】:SSIS Performance on Sql Server 2008 R2Sql Server 2008 R2 上的 SSIS 性能
【发布时间】:2010-12-17 09:25:51
【问题描述】:

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

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

但是,当我从 Sql Server Agent 运行它时,我的执行时间从 5 分钟到超过 1 小时不等……旧服务器没有这样的问题!我还尝试在 32 位模式下运行该程序包,在某些运行时它似乎更快,但它非常随机......但是它从未达到它在 Sql Server 2005 上的良好性能。

我不知道...最初我认为这是一个内存问题,因为我没有给 Sql Server 提供最大内存限制,并且其他一些包同时运行有问题,所以我扩展了由服务器(它在 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

【问题讨论】:

    标签: sql-server-2008 ssis 64-bit sql-server-2008-r2 windows-server-2008-r2


    【解决方案1】:

    还有什么正在运行?在计划运行此程序包时,您是否有用户运行查询(可能锁定表)或其他程序包接触相关表?当您运行它时,您是否看到阻塞锁或其他类似的东西?

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

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

    【讨论】:

    • 在那些表上可能只有一些读取和一些插入,没有更新。但是,当我从 Visual Studio 运行它(针对我的生产表运行)时,这不是问题,它在 2005 年运行时完全相同。也许我缺少一些配置来调整性能,但我几乎到处都看了(我认为)
    • 我唯一能想到的就是用户权限。您是在代理下运行包还是作为 SQL Server 代理运行包?如果您以代理用户身份登录并运行包会发生什么?
    【解决方案2】:

    我找到了解决方案。

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

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

    我仍然不明白为什么在 Windows Server 2003 和开发中的 Sql Server 2005 中的分配工作正常,但是现在包已修复!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      相关资源
      最近更新 更多