where条件同时存在等于和大于的时候不走索引

[复制链接]
查看11 | 回复9 | 2011-2-18 11:43:34 | 显示全部楼层 |阅读模式
为什么当where条件同时存在大于和等于的时候,不会走索引?
如:
select max(u_time)
from dat_history_tb
where u_time between sysdate - 1 and sysdate
and tag = '1101/LXL/ZAPC'
条件的两个字段都有索引,单用每个字段都会走索引,只有组合条件就不走索引,怎么样才能叫这个走索引?

回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
add_equal/index_combine hint试试
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
分区表?
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
执行计划发上来
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
求一个执行计划
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
那 执行计划是这样的,不是分区表就是普通的表
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
符合条件的记录占了总记录数的多少?
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
U_TIME是什么数据类型?
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
U_TIME日期类型,
符合条件的记录占了总记录数的多少?这个很少的
回复

使用道具 举报

千问 | 2011-2-18 11:43:34 | 显示全部楼层
select /*+ index_join(dat_history_tb INDEX_TAG BITMAP_TAG) */
max(u_time), min(u_time)
from dat_history_tb
where u_time between sysdate - 1 and sysdate
and tag = '1101/LXL/ZAPC'
javascript:
这样修改之后倒是走索引了,但是查询效率还是比较低,如何提高查询效率呢?
以下是执行计划
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行