一个SQL 语句,为什么执行计划不一样

 我来答
longrenyingdc8ecb1
2016-11-25 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2370万
展开全部
如果你的执行计划没有固化,那么两次执行就可能存在不同。
(1)读取数据方式不同
第一次执行需要读取数据,甚至是部分物理读。
第二次执行就基本都是逻辑读了。
(2)机器负载不同
服务器选择叫做最优化的方式,是最低成本消耗。如果你的服务器现在很忙,那么最低成本消耗就是尽量少的占用cpu和内存
如果服务器现在很闲,那么最低成本消耗的条件可能发生一些改变,从而导致执行计划不同。
(3)数据量原因
如果数据量突然大量增加或减少,又或者在带有统计信息的数据库上统计信息没有跟上数据量的变化,那么就可能出现这种状况。
当然可能还有其他原因(比如数据库发生一些变化,如长连接,常驻表等等),如果希望执行计划固化,那么就设置该语句的固定执行计划,网上有设置方式的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式