【问题标题】:SQL Server 2000 query performanceSQL Server 2000 查询性能
【发布时间】:2011-10-13 15:02:24
【问题描述】:

我们已经将我们的少数 serevr 迁移到命名实例,我遇到了一个存储过程需要更多时间来执行的情况。 存储过程有一些业务逻辑指向一个表。我在桌子上有索引。我怀疑相同的存储过程如何在两个不同的生产数据库中用于具有相同索引的同一张表上花费不同的时间。我了解数据库性能取决于数据库的负载。但我在非工作时间执行,我认为负载也几乎相似。在新命名的 instancwe 服务器中执行需要 10 秒,在旧服务器中执行需要 3 秒。我需要对新服务器中的表进行碎片整理吗?它会解决问题吗?知道如何检查新服务器的问题所在。

编辑:当我检查执行计划时,它在急切的假脱机中提供了 38% 的执行时间(以创建临时索引)。你能解释一下我如何在执行中避免这部分。 我在执行到非命名实例服务器时没有得到这个(执行需要 3 秒)

编辑:将重建索引以提高性能

【问题讨论】:

  • 我们需要更多细节才能真正帮助您。我们需要查看您的存储过程、表架构、执行计划、索引等。

标签: performance optimization sql-server-2000 indexing


【解决方案1】:

首先检查:检查任一服务器上查询的执行计划 - 它们是否匹配?

编辑:计划不匹配,所以下一个想法是架构(索引)不相同,或者较新实例上的统计信息不是最新的。在较新的实例上尝试 sp_updatestats 并查看计划是否更改。

【讨论】:

  • 好的@andrew 我已经检查了执行计划请检查我的问题的编辑部分。
  • 两个服务器上的索引相同,我在较新的实例服务器上创建了一个新的统计信息,当我检查时我也能看到更新日期。你能告诉我更多关于统计的细节吗?感谢您的快速响应..
  • 我要检查新服务器和旧服务器之间的碎片率吗?它会帮助我吗?我认为这会对性能产生影响..
  • 两台服务器的IO子系统有什么区别?碎片化可能会有所不同,但取决于如何填充这个新实例上的数据、备份/恢复?
  • 新的是带有 SQL Server 2000 的 OS WIndows 2003,旧的是带有 SQL Server 2000 的 OS windows 2000。您需要相同的信息还是需要其他详细信息。
猜你喜欢
  • 2023-03-18
  • 2011-11-20
  • 2015-05-13
  • 2017-10-20
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多