3

我正在将我的数据仓库SQL Server 2005SQL Server 2008. 表更新有很大的性能下降。插件工作得很好。

我在两种环境中都使用相同的 SSIS 包,但 2008 仍然无法正确更新。

我已经在所有表上运行了完整的更新统计信息。该过程使用临时表。我已经删除了所有索引(更新所需的索引除外),但这些措施都没有帮助。我还写了一个更新语句来模仿 SSIS 正在做的事情,并且它运行得像预期的那样快。

更新过程使用数据流任务(任务中还有其他内容,例如插入processed表以了解更新中使用了哪些数据)。

这是一个全新的数据库,上面没有运行其他任何东西。有什么建议么?

捕获的统计信息 IO

  • 2005,CPU=0,读取=150
  • 2008,CPU=1700,读取=33,000

数据库内存:

  • 2005 年,总计 40GB / 18 个 Sql Server
  • 2008 年,总计 128GB / 110GB Sql Server
4

1 回答 1

3

在执行计划中发现了问题。2008 年的计划是使用不同的表构建更新语句。背景:由于我们在查询这些表时使用不允许任何其他访问的索引视图,因此我们构建了 iView 使用的更小/更精简的表,而不是我们的维度,以使它们对用户可用。优化器选择的是那些表,而不是我们在查询中指定的表。

当我最初做解释计划时,我使用了错误的查询,它没有这个功能。这一切都不同了。

谢谢!

于 2013-02-12T22:02:14.347 回答