免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3056 | 回复: 19
打印 上一主题 下一主题

这一点小小的区别,速度就差100倍么 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-26 15:24 |只看该作者 |倒序浏览
select *
from A
join B on A.field1=B.field1
where  A.field2= XXX
A.field3=XXX
下面就是 疑问的地方了
---------------------------------------------------------------------------
a.orderdate BETWEEN TO_DATE ('2005-1-26', 'yyyy-mm-dd')
                         AND TO_DATE ('2005-1-26', 'yyyy-mm-dd')

a.orderdate BETWEEN TO_DATE (20050126, 'yyyy-mm-dd')
                         AND TO_DATE (20050126, 'yyyy-mm-dd')

这两个条件差别很大
上面那个用法执行计划不使用索引,运行时间是7秒左右
下面这个用法执行计划使用了索引,运行时间是0.07秒左右
相差100倍阿 区别就是这么一点 '2005-1-26' vs 20050126

达人解释下 谢谢了

论坛徽章:
0
2 [报告]
发表于 2005-01-26 21:45 |只看该作者

这一点小小的区别,速度就差100倍么

a.orderdate BETWEEN TO_DATE (20050126, 'yyyy-mm-dd')
AND TO_DATE (20050126, 'yyyy-mm-dd')
                                                                              ||
                                                                              \/
a.orderdate BETWEEN TO_DATE (20050126, 'yyyymmdd')
AND TO_DATE (20050126, 'yyyymmdd')
再试试

论坛徽章:
0
3 [报告]
发表于 2005-01-27 16:25 |只看该作者

这一点小小的区别,速度就差100倍么

谢谢楼上
按你的改了
a.orderdate BETWEEN TO_DATE (20050126, 'yyyymmdd')
AND TO_DATE (20050126, 'yyyymmdd')

运行时间大于7秒 执行计划还是没有用到索引
昨天我try了下面这个
a.orderdate BETWEEN '26-1月-2005'
                         AND '26-1月-2005'
同样是用不到索引

这是不是oracle todate function的bug
我很奇怪了 加了hint也是不用索引
就是总是全表扫描 除了'20050126'这种用法
该表月末的时候该有几百w的记录
oradate字段是加了index的

论坛徽章:
0
4 [报告]
发表于 2005-01-27 16:27 |只看该作者

这一点小小的区别,速度就差100倍么

现在只有 这个方法
a.orderdate BETWEEN TO_DATE (20050126, 'yyyy-mm-dd')
AND TO_DATE (20050126, 'yyyy-mm-dd')

是0.07秒 用到了index

why? 莫名阿~

论坛徽章:
0
5 [报告]
发表于 2005-01-27 22:50 |只看该作者

这一点小小的区别,速度就差100倍么

注意这里 TO_DATE (20050126, 'yyyymmdd') 和TO_DATE ('2005-1-26', 'yyyy-mm-dd')

论坛徽章:
0
6 [报告]
发表于 2005-01-28 08:47 |只看该作者

这一点小小的区别,速度就差100倍么

对的
都try过了
try了好多种可能的组合
只有
TO_DATE (20050126, 'yyyy-mm-dd')和
TO_DATE ('20050126', 'yyyy-mm-dd')
能用到index
别的都是全表扫描

论坛徽章:
4
2015年亚洲杯之阿联酋
日期:2015-03-10 10:32:022015年亚洲杯之阿曼
日期:2015-03-10 14:53:222015亚冠之水原三星
日期:2015-07-18 15:40:262015亚冠之塔什干棉农
日期:2015-07-27 20:52:05
7 [报告]
发表于 2005-01-28 09:15 |只看该作者

这一点小小的区别,速度就差100倍么

我记得好象有个变量叫date_format(或者time_format),看一下是什么
试一下:show parameter format

论坛徽章:
0
8 [报告]
发表于 2005-01-28 10:10 |只看该作者

这一点小小的区别,速度就差100倍么

小弟初学,请问怎么看是index还是全面扫描?

论坛徽章:
0
9 [报告]
发表于 2005-01-28 10:11 |只看该作者

这一点小小的区别,速度就差100倍么

小弟初学,请问怎么看是index还是全面扫描?

论坛徽章:
0
10 [报告]
发表于 2005-01-28 12:08 |只看该作者

这一点小小的区别,速度就差100倍么

[quote]原帖由 "jamesj"]小弟初学,请问怎么看是index还是全面扫描?[/quote 发表:

看执行计划
还有 嘿嘿
就是凭感觉
不用索引的时间太长拉
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP