遇到join on的条件加括号和不加括号的区别,百思不得其解,求高人指点
时间:2011-12-20
来源:互联网
我遇到一个语句如下:
SQL code
其中TJBB_DDGL_DDXSFW 表有2000多万条数据,jt_Webg_Ddkxskc 有700多万数据,jt_Webg_Ddkxskc 表加了ckid字段和spxxid字段的索引,TJBB_DDGL_DDXSFW表也加了ckid字段、spxxid字段、gysid字段的索引。
可是查询时间还是要用47秒。开始怎么也优化不好。但发现下面两种写法执行时间都是在零点几秒。
SQL code
SQL code
之后各种尝试,各种苦恼,最后无意中发现加上括号执行时间就可以达到 0.4秒。像下面这样写。
虽然问题解决了,但找遍了书和百度,也没找到原因。
恳请CSDN的高人显身哇!谢谢啦!
SQL code
SQL code
select t.spxxid from TJBB_DDGL_DDXSFW t left join jt_Webg_Ddkxskc kc on [color=#FF0000]t.spxxid = kc.spxxid and t.ckid = kc.ckid[/color] where t.gysid = '1276';
其中TJBB_DDGL_DDXSFW 表有2000多万条数据,jt_Webg_Ddkxskc 有700多万数据,jt_Webg_Ddkxskc 表加了ckid字段和spxxid字段的索引,TJBB_DDGL_DDXSFW表也加了ckid字段、spxxid字段、gysid字段的索引。
可是查询时间还是要用47秒。开始怎么也优化不好。但发现下面两种写法执行时间都是在零点几秒。
SQL code
select t.spxxid from TJBB_DDGL_DDXSFW t left join jt_Webg_Ddkxskc kc on [color=#FF0000]t.spxxid = kc.spxxid[/color] where t.gysid = '1276';
SQL code
select t.spxxid from TJBB_DDGL_DDXSFW t left join jt_Webg_Ddkxskc kc on [color=#FF0000]t.ckid = kc.ckid [/color] where t.gysid = '1276';
之后各种尝试,各种苦恼,最后无意中发现加上括号执行时间就可以达到 0.4秒。像下面这样写。
虽然问题解决了,但找遍了书和百度,也没找到原因。
恳请CSDN的高人显身哇!谢谢啦!
SQL code
select t.spxxid from TJBB_DDGL_DDXSFW t left join jt_Webg_Ddkxskc kc on [color=#FF0000](t.spxxid = kc.spxxid and t.ckid = kc.ckid)[/color] where t.gysid = '1276';
作者: chybin500 发布时间: 2011-12-20
路过.....楼主把执行计划的区别拿出来对比一下?
作者: yuyeyi 发布时间: 2011-12-20
有没有括号貌似没区别。你是不是加索引了?
作者: minitoy 发布时间: 2011-12-20
是不是第一次查的时候数据还在磁盘,后面几次查的数据已经cache到内存里面了啊!
作者: youshang444 发布时间: 2011-12-20
执行计划确实是一样的,加不加括号的确没区别。
两次时间不一样的原因是应该是查询第一个时,有个存储过程在对表进行大的操作(删除再导入,这操作挺2的,2000多万呀)。
存储过程执行完了,两种方法是一样的时间。
哦,够糗的~
两次时间不一样的原因是应该是查询第一个时,有个存储过程在对表进行大的操作(删除再导入,这操作挺2的,2000多万呀)。
存储过程执行完了,两种方法是一样的时间。
哦,够糗的~
作者: chybin500 发布时间: 2011-12-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28