一条sql语句在两个机器上执行速度不一样的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一条sql语句在两个机器上执行速度不一样的问题相关的知识,希望对你有一定的参考价值。

今天遇到这样一个问题,在一个服务器上,执行一条两个表嵌套查询的SQL语句,在SQL查询分析器里,执行的很慢,大概要1分钟左右才有结果,其实数据也就100多条,还有几次根本就不出现结果,就在那里查,也查不出来。于是把这个数据库备份,还原到笔记本上,执行同样的语句,立刻就出结果,最多的一次也就是2秒,一般都是1秒左右,而且这个笔记本配置要比服务器差多了,就是不明白为什么,服务器上执行这个语句为何如此的慢,但执行其他语句好像都很正常,没有什么延迟多久的。请教各位,有没有遇到过这样的情况:SQL语句如下:

select * from 车辆甲 a,车辆乙 b where a.id in(select max(id) from 车辆甲 group by 车牌号,车颜色) and convert(datetime,a.出发日期)>='2008-7-31' and convert(datetime,a.出发日期)<='2008-8-14' and a.车牌号=b.车牌号 and a.车颜色=b.车颜色 order by convert(datetime,a.出发日期)

参考技术A 出现这种情况很可能是一下原因:可能你执行SQL的服务器,别人可能正在上面更新数据,如果你的服务器,配置不是很好的话,那么这时 你执行这些SQL时速度会非常的慢,我曾经就出现过这样的情况,你可以尝试一下,那天你公司没什么人的时候你在执行以下SQL你会发现很快的 参考技术B 优化器的结果不同,内存的数据缓存不同。
我想如果你将服务器的SQL服务重启应该差不多了吧本回答被提问者采纳

以上是关于一条sql语句在两个机器上执行速度不一样的问题的主要内容,如果未能解决你的问题,请参考以下文章

日志系统:一条SQL更新语句是如何执行的

EF执行SQL语句和存储过程

ADF 映射数据流,是不是可以在源上执行 SQL?

sq 语句 查询两个表 并按时间字段排序

如果输入一条查询一张表的sql语句,但数据库执行缓慢,如何并采取啥样的方法对数据库进行优化?

如题:如何用一条SQL语句按输入的参数进行判断执行查询数据