我正在将数据库备份从SQL Server 2000迁移到SQL Server 2005.
他们运行的硬件是等效的。
鉴于此,在SSQL2005上运行时,存储过程不应该至少运行得那么快(如果不是更快)?数据完全相同。但是,它们运行速度慢了5倍。
我将数据库重新编制索引并在将其恢复到SSQL2005后重置其统计信息。
傻眼.....
仅供参考,在制作转储文件时,我确保它们已经过校验和验证。
我创建了2个单独的备份,并使用2个备份执行此操作并获得了相同的结果。
答案 0 :(得分:2)
确保更新数据库的兼容级别:
ALTER DATABASE dbname SET COMPATIBILITY_LEVEL = 90;
还要确保更新(或重建)索引的统计信息。
当然,您需要确保修补SQL Server 2005 - 您是否安装了Service Pack 4和latest Cumulative Update?
答案 1 :(得分:1)
SQL Server 2000和2005之间存在许多差异。所以这当然不是不可能的。
假设数据和索引都是一样的,我首先会看一个代表性程序的执行计划 - 如果它们不同,那么有些东西需要在那里进行调查,这可能包括参数嗅探问题。 / p>
如果所有这些都可以解决,那么接下来您可能需要深入了解文件位置,以查看数据和日志文件在驱动器和底层RAID等方面是否设置不同。然后再到性能计数器等。
更新: 尝试使用T开关4199,http://msdn.microsoft.com/en-us/library/ms188396.aspx获取可用的开关等。另外请确保安装了最新的累积更新包。
答案 2 :(得分:1)
实际上 - 从我在Microsoft SQL Server Level 3支持时的时间 - 有很多问题,其中一个问题迫使2000数据库在2005年运行速度极慢。这是查询优化器IIRC的一个问题(3年忽略设置表扫描的成本,并因此看到一个小的表扫描成本低,这是昂贵的(大量的开销)所以循环。我记得一个案例在2005年接受了“永不完成”的询问。
有一个启动开关强制旧行为,但我不记得了。试着找到它。