2

将数据库从 SQL Server 2000 升级到 SQL Server 2005 会导致查询速度变慢的常见原因有哪些?这来自具有数百个表的 ASP.NET 1.1 应用程序,所有内容都已编入索引,并且似乎在旧版本上运行良好。

4

8 回答 8

2

您确定您的所有索引都在升级后幸存下来吗?硬件有什么区别吗?您是否使用 SQL Profiler 来确定哪些查询运行速度较慢以尝试追踪问题?

可能有很多事情。如果没有具体的查询示例和其他信息,我认为任何人都无法提供太多帮助。

于 2009-01-28T20:25:06.840 回答
2

升级后,您需要做的第一件事是使用全扫描更新统计信息并重建索引,否则您将获得次优计划

于 2009-01-28T20:27:06.337 回答
1

您可能希望通过查看最麻烦的查询的执行计划来重新评估您的索引。SQL 2005 查询优化器可能会提出完全不同的执行计划。

您还应该确保更新整个数据库的统计信息。

于 2009-01-28T20:27:59.923 回答
1

一些东西...

  1. 你用的是什么服务包?
  2. 您是否应用了任何其他修补程序或 CU?
  3. 升级过程中是否将 db 兼容级别从 80 更改为 90?

如果您使用服务器端游标,请注意从 SQL Server 2000 升级到 SQL Server 2005 后可能会出现一些性能问题。如果您遇到这种情况,有几个修补程序可能会有所帮助。只需搜索 SQL Server 2005 修补程序和服务器端光标。

除此之外,请务必在升级、重建索引和更新统计信息后检查数据库完整性。

于 2009-01-28T20:36:52.743 回答
1

我们刚刚从 2000 Ent SP4 升级到 2005 Std 64 位 SP2 后遇到了这个问题,它也是一个更强大的服务器(2 个 4 核,32GB RAM)

SELECT 查询在 2000 年花费了 2~3 秒,在 2005 年花费了 20 多分钟(但仍未完成)重新构建所有索引,sp_updatestats,结果相同。很奇怪,除了 NOLOCK 没有使用任何索引提示 虽然 2005 机器上的数据库仍然处于 8.0 兼容模式

在我们测试时恢复到另一个 2005 年的盒子

于 2009-02-09T21:35:23.347 回答
0

确保您正在运行的查询和存储过程没有使用任何索引提示。就像其他人提到的那样,优化器在 2000 年和 2005 年之间发生了变化,因此这些提示可能不再有用。

于 2009-01-28T20:48:12.237 回答
0

此外,如果所有其他方法都失败了,则在 SP2 累积更新 6 中解决的 2005 优化器中存在一个错误(并且需要应用 2 个跟踪标志)。

于 2009-01-28T20:49:59.677 回答
0

你没有说你正在运行哪个版本。

但是,如果您刚刚从 2000 标准版或企业版转移到 2005 快捷版;Express 版仅使用一个处理器。我只是上周发生了这种情况;我的一个查询从本来就很慢的 1.5 秒变成了 55 秒!我运行了查询计划,唯一的区别是并行操作。无法相信速度差异。

于 2009-01-28T21:06:48.283 回答