2013-01-08 38 views
1

数据库是SQL 2008R2企业版。sql服务器索引重建减慢第一个查询

我有一个SSIS集成,每晚在表格中截断并加载约1500万行。发生这种情况后,我有一个执行SQL任务,该任务重建表b/c上的索引,它在trunc和load之后严重碎片化。

我遇到的问题是第一次使用该表作为数据源的报告。第一次执行需要一段时间。然而,在第一次执行之后,报告按照预期快速增长,直到第二天晚上再次发生截断和加载和索引重建。

我能做什么的任何建议可以修复该表上的第一个查询的性能?

+0

您说报告,这是您所指的SSRS报告吗? – billinkc

+0

是的,这是一份ssrs报告。但我猜这部分可能不重要b/c存储过程是数据源执行相同的报告或直接在ssms中运行。 – user1134307

+0

因此,在重建后立即执行存储的proc会遇到同样的性能,无论它是来自SSRS还是SSMS/sqlcmd/etc?我最初的理论是SSRS由于20分钟的保持循环而循环下来。 – billinkc

回答

1

你可以尝试运行版本的报告后立即索引重建这不仅说TOP 1选择任何数据集,建立必要的缓存和执行计划,这将“启动”缓存并使设置最优化,而无需整个运行报告。

+0

非常聪明的工作,谢谢。如果上面avitus推荐的统计信息不起作用,我会给这个镜头。 – user1134307

+1

看起来像这将是我的解决方案,它绝对有效,并且是一个光滑的工作。感谢您的帮助 – user1134307

+0

不错,很高兴它帮助你! :) –

0

后重建索引尝试更新的统计信息,以解决您的性能问题:(?存储过程)

EXEC sp_updatestats 
+0

有趣,我会给这个镜头,看看它是否适合我。 – user1134307

+0

我更新了数据源中使用的表的统计信息,但这并没有解决所描述的第一个执行问题。我是否正确更新表格的统计信息? – user1134307