欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

日期类型判断的怪有关问题

更新时间: 2014-01-05 02:12:45 责任编辑: Author_N1

 

日期类型判断的怪问题
最近在改一个比较复杂的SQL语句,因为比较慢。
在测试过程中,发现了一个怪问题。
部分SQL语句如下:

如果是下面的这句,速度很快。
AND MO_NUMBER IN (
SELECT MO_NUMBER FROM TABLE1 WHERE 1=1 
AND (TO_CHAR(OUT_TIME,'YYYY/MM/DD HH24:MI:SS') BETWEEN '2013/07/18 07:30:00' AND '2013/07/25 10:28:56')



如果是下面的这句,速度非常慢。
AND MO_NUMBER IN (
SELECT MO_NUMBER FROM TABLE1 WHERE 1=1 
AND OUT_TIME BETWEEN TO_DATE('2013/07/18 07:30:00', 'YYYY/MM/DD HH24:MI:SS') AND TO_DATE('2013/07/25 10:28:56','YYYY/MM/DD HH24:MI:SS')



在我的印象中,第二条语句应该快啊,因为第一条语句BETWEEN前面有用TO_CHAR,这样应该慢吧。但实际上却是很快。
--参考方法--
我建议你看看执行计划,涉及到优化的,执行计划是一个很重要的概念。
--参考方法--
引用:
Quote: 引用:

我建议你看看执行计划,涉及到优化的,执行计划是一个很重要的概念。


谢谢。只是执行计划太复杂了,看的头昏。

再请教一下,下面的语句在执行计划中看到是全表扫描,怎么处理,才能不是全表扫描??
SELECT COL1, COUNT(DISTINCT COL2) FROM TABLE1 GROUP BY COL1

把你建索引的字段名加到条件中,这样就走索引。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:45
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7025/
本文WWW.DOC100.NET DOC100.NET版权所有。