1

我正在将数据库备份从 SQL Server 2000 移动到 SQL Server 2005。

他们运行的硬件是等效的。

鉴于此,存储过程在 SSQL2005 上运行时不应该至少运行得一样快(如果不是更快的话)吗?数据完全一样。但是,它们的运行速度要慢 5 倍。

在将数据库恢复到 SSQL2005 后,我重新索引了数据库并重置了它的统计信息。

目瞪口呆……

仅供参考,在制作转储文件时,我确保它们经过校验和验证。

我创建了 2 个单独的备份并使用 2 个备份执行此操作并得到相同的结果。

4

3 回答 3

2

确保更新数据库的兼容级别:

ALTER DATABASE dbname SET COMPATIBILITY_LEVEL = 90;

还要确保更新(或重建)索引的统计信息。

当然,您需要确保 SQL Server 2005 已全部修补 - 您是否安装了Service Pack 4最新的累积更新

于 2012-05-01T19:44:46.520 回答
1

SQL Server 2000 和 2005 之间存在许多差异。所以这当然不是不可能的。

假设数据和索引都相同,我将首先查看一个有代表性的程序的执行计划——如果它们不同,那么就需要在那里进行调查,这可能包括参数嗅探问题。

如果一切顺利,那么接下来您可能需要深入研究文件位置,以查看数据和日志文件在驱动器和底层 RAID 等方面的设置是否不同。然后是性能计数器等。

更新:尝试 T 开关 4199, http: //msdn.microsoft.com/en-us/library/ms188396.aspx以获取可用开关等。还要确保您安装了最新的累积更新包。

于 2012-05-01T19:42:59.267 回答
1

实际上 - 从我在 Microsoft SQL Server Level 3 Support 的时间开始 - 有很多问题,其中一个迫使 2000 数据库在 2005 年运行速度极慢。这是查询优化器 IIRC 的问题(3 年前)忽略设置表扫描的成本,因此将小型表扫描视为低成本,这是昂贵的(大量开销),因此围绕它进行循环。我记得 2005 年有一个案例询问“永远不会完成”。

有一个启动开关来强制旧行为,但我不记得了。现在正在努力寻找。

于 2012-05-01T19:46:07.517 回答