Date类型,神一般的现象,高手在哪里?

xiangjie123 2012-11-08 07:27:24
问题是这样的,很简单的一个sql,判断条件如果写成:

tw1.walo_end_time >
to_date(' 2012-11-08 00:00:00', 'yyyy-MM-dd hh24:mi:ss')
那么执行时间异常慢,但是换个写法就ok:
to_char(tw1.walo_end_time, 'yyyy-MM-dd hh24:mi:ss') > '2012-11-08 00:00:00'

并且tw1.walo_end_time is null的判断也一样的慢,换成decode也很快,真心不能解释了

神一般的现象
...全文
430 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangjie123 2013-01-22
  • 打赏
  • 举报
回复
呵呵,谢谢各位了,这个问题比较搞笑了,其实并不是sql或者date本身的问题,最后查看sql执行状况,发现这条SQL执行阻塞住了,所以所有相同的SQL都会阻塞,但是更换查询条件相当于新的查询,是ok的,当然,这个问题很奇怪,只有这个条件执行时阻塞了,后来放了一夜,第二天也就ok了。
ruihuahan 2012-12-08
  • 打赏
  • 举报
回复
神一般的现象并不神,楼上各位都是神。呵呵。
iihero_ 2012-12-06
  • 打赏
  • 举报
回复
walo_end_time这个列建了索引没有? 建了索引的话,是不是符合条件的记录占了表中的大多数。
lnuwhy 2012-12-05
  • 打赏
  • 举报
回复
会不会你的tw1.walo_end_time类型是字符型的?否则真是没有解释了。
izj 2012-12-05
  • 打赏
  • 举报
回复
建议你看看执行计划就知道了。。。。估计1楼说的是对的。。
lyxlyz 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 ssqtjffcu1 的回复:
第一种写法会走索引,第二种写法不会。条件列里会了函数不会走索引,就这么简单。
正解,建议楼主看看where条件的走索引的条件
linwaterbin 2012-11-08
  • 打赏
  • 举报
回复
引用 楼主 xiangjie123 的回复:
问题是这样的,很简单的一个sql,判断条件如果写成: tw1.walo_end_time > to_date(' 2012-11-08 00:00:00', 'yyyy-MM-dd hh24:mi:ss') 那么执行时间异常慢,但是换个写法就ok: to_char(tw1.walo_end_time, 'yyyy-MM-dd h……
有个原则是:避免对列进行运算,但你的例子却是倒着来,很奇怪》。。 你能否把你的执行计划贴上来看看
ssqtjffcu 2012-11-08
  • 打赏
  • 举报
回复
第一种写法会走索引,第二种写法不会。条件列里会了函数不会走索引,就这么简单。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧