2011-07-26 58 views
1

我们已经将我们的少数serevr迁移到命名实例,并且存在一个存储过程需要更多时间执行的情况。 存储过程有一些指向表的商业逻辑。我在桌上有索引。我怀疑在两个不同的生产数据库中采用不同的时间在同一表上使用相同的存储过程。我知道数据库执行取决于加载到数据库上。但我在非商业时间进行治疗,我认为负荷也差不多。它在新的命名instancwe服务器上执行10秒,在旧服务器上执行3秒。我是否需要在新服务器中对表格进行碎片整理?它会解决问题吗?任何想法如何检查新服务器的问题。SQL Server 2000查询性能

编辑:当我检查执行计划时,它给予了渴望假脱机38%的执行时间(创建临时索引)。你能否解释我如何才能避免这一部分的优点。 我没有得到这个whhile执行到非命名实例的服务器(其中其采取3秒,执行)

编辑:将重新索引的建设做出任何性能改进

+0

我们需要更多的细节才能真正帮助您。我们需要看你的存储过程,你的表模式,执行计划,索引等。 – mwigdahl

回答

1

首先检查:检查执行计划在两台服务器上进行查询 - 它们是否匹配?

编辑:计划不匹配,所以下一个想法是模式(索引)不相同,或者新实例的统计数据不是最新的。在新的实例上尝试一下sp_updatestats,看看计划是否改变。

+0

OK @andrew我已经检查过执行计划请检查我的问题的编辑部分。 – user863952

+0

两台服务器上的索引都是相同的,我在新的实例服务器上创建了一个新的统计信息,当我检查时我也能看到更新日期。你能给我一些关于统计的更多细节。感谢您的快速响应。 – user863952

+0

我应该检查新服务器和旧服务器之间的碎片比率。它会帮助我吗?我认为它会影响性能。 – user863952