码迷,mamicode.com
首页 > 数据库 > 详细

sql 语句中传入变量值和语句外声明变量速度对比

时间:2020-07-22 23:38:05      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:意图   com   info   单表   隐私   time   声明   开始   超时   

今天线上遇到数据加载超时问题,然后看了下前辈的sql语句,发现1个很奇怪的问题,在此Remark!

语句是个多表连接的语句并且分页,由于隐私问题我就不展示了,但我写了一个简单的单表查询语句代之,参数就一个开始时间一个结束时间,用写法1和写法3查询要20多秒,

但是用写法2的形式只要1-2秒,这里我比较疑惑的问题有两点。

1.原语句是多表连接查询而且数据量也比较多,为什么查询只要这么短时间,但是查询结果确确实实是对的

2.为什么1,3写法查询那么慢,线上原语句最终执行方法是底层封装的,看不到源码,但通过监听工具抓包之后得到的次语句

exec sp_executesql N‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ORDER BY AddTime DESC OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;‘,N‘@BeginDate datetime,@EndDate datetime‘,@BeginDate=‘2020-05-01 00:00:00‘,@EndDate=‘2020-05-20 00:00:00‘ 这个执行时间和1,3写法执行时间差不多

速度这么大原因尚不清楚,刚开始以为是值类型原因,但是转换之后还是不对,如有大神知道,烦请评论区留言。

附图:以下是三种写法示意图

 

技术图片

sql 语句中传入变量值和语句外声明变量速度对比

标签:意图   com   info   单表   隐私   time   声明   开始   超时   

原文地址:https://www.cnblogs.com/mingcore/p/13363743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!