日期:2014-05-16  浏览次数:20553 次

为什么数据库原来sql2000换成sql2005后查询会很慢?
最近有个系统数据库原来是sql2000的现在改成了sql2005后查询以前的历史记录会比原来sql2000时慢很多 。数据库的主表也就是几万条,关联的付表有7、8个,在查询时主表和付表用 left join连接查询的。没有用到索引,原来查询速度不快,现在换成了sql2005后,当输入一个条件第一次进行查询时比原来sql2000慢好几倍,但重复刚才的查询条件再查询时就很快了,比原来sql2000时快很多。请问这是什么问题?现在查询我都是从客户端用jsp前台来查询的。
------解决方案--------------------
脚本升级以后建议重建索引 重新更新统计信息。
------解决方案--------------------
另外建议加一个完整备份+日志备份。
------解决方案--------------------
当输入一个条件第一次进行查询时比原来sql2000慢好几倍,但重复刚才的查询条件再查询时就很快了
第二次查询已经在缓存了

如果一开始很慢是正常现象因为很多数据和执行计划是事先没有缓存过的

建议正常运行一段时间后再观察是不是还是很慢
------解决方案--------------------
引用:
Quote: 引用:

当输入一个条件第一次进行查询时比原来sql2000慢好几倍,但重复刚才的查询条件再查询时就很快了
第二次查询已经在缓存了

如果一开始很慢是正常现象因为很多数据和执行计划是事先没有缓存过的

建议正常运行一段时间后再观察是不是还是很慢


已经好几天了都是这个样子。请问一下如果在sql2000里建过的索引然后把MDF文件在sql2005里附加,原来的索引和自定义函数会有影响吗?


附加mdf肯定没影响了
置于慢的原因,你要具体分析是哪个sql,不会是整体上所有sql都慢吧?
------解决方案--------------------
两者机制不一样了,算法那些也有很大改进,你可以挑个比较慢的语句,右键空白处,然后选择用【数据库引擎优化顾问】来分析一下,是否有一些include索引建议