sql server 2008同一个语句查询,为啥时快时慢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2008同一个语句查询,为啥时快时慢相关的知识,希望对你有一定的参考价值。

可能的原因会有哪些,请高人指导!!在每次查询之前都已经对缓存进行了清除,所以每次的执行环境都是一样的

给你一个网址,里面有一个案例参考:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html

同一个SQL,执行多次时,会重用以前生成的执行计划。
返回很多记录跟返回很少记录,生成的执行计划是不一样的,

如果第一次执行时返回的记录很多,就会造成后面的所有执行,都用慢的执行计划,
详细参考上面的文章就知道了
参考技术A 存储瓶颈问题追问

能具体点吗

追答

这个问题有多种情况需要一步步排查

我能想的的可能的问题:

    你在执行这个语句的时候,数据库要从磁盘上读取数据。如果其它程序也在读取这个磁盘上的数据,那这个执行速度就会慢了。

    运行期间,其它人也在运行,出现等待

排查比较复杂,不是行家不敢打狂语

参考技术B 这个要看查询时候有没有同时大量的数据写入动作 参考技术C 看一下执行计划,是否每次的执行计划都是一样的?追问

什么意思,相同的语句在相同的环境下执行会有什么不一样

追答

执行计划是SQL引擎根据它内部的一下计划和判断之后得出的一个它认为最优的执行路线,所以每次不一定是一样的。当然绝大部分情况下是一样的。
如果你这个时快时慢,可以先看一下执行计划,是否快慢的不同,执行计划也不同?

以上是关于sql server 2008同一个语句查询,为啥时快时慢的主要内容,如果未能解决你的问题,请参考以下文章

为啥在eclipse中执行 sql server 的查询语句总是提示语法错误,请大家帮我看看。

我用Sqlserver2008查询时生成的Sql语句,都是自动换行的,如何设置可以不换行?

SQL Server 2008 R2 - 将查询结果保存为 phpmyadmin 可读的 SQL 语句?

一条sql语句顺序查询出父类的所有子类 如下图:用的是sql Server 2008

sqlserver2008从一个表中模糊查询并分页

sql server 2008不用查询语句怎样查看新建的表的信息?像2000中的企业管理器中有个返回所有列一样