程序里面有一个查询,使用了绑定变量,如下:
select *
FROM t_res_flt b
WHERE b.fltdate >= to_date(:1, 'YYYY-MM-DD')
AND b.fltdate <= to_date(:2, 'YYYY-MM-DD')
AND b.carrier = :3
AND b.depapt = :4
AND b.arvapt = :5
t_res_flt 表有时间索引fltdate ,也有carrier 这个索引,但这个carrier 效率是很低的,现在的执行计划是使用绑定变量,就走carrier 索引,而如果我不走绑定变量,不条件写死
select *
FROM t_res_flt b
WHERE b.fltdate >= to_date(‘2008-07-07’, 'YYYY-MM-DD')
AND b.fltdate <= to_date(‘2008-07-07’, 'YYYY-MM-DD')
AND b.carrier = ‘MU'
AND b.depapt = 'PEG'
AND b.arvapt = 'Y'
他就走fltdate这个索引,不知道是什么问题,走时间索引查询速度是非常快的。
select *
FROM t_res_flt b
WHERE b.fltdate >= to_date(:1, 'YYYY-MM-DD')
AND b.fltdate <= to_date(:2, 'YYYY-MM-DD')
AND b.carrier = :3
AND b.depapt = :4
AND b.arvapt = :5
t_res_flt 表有时间索引fltdate ,也有carrier 这个索引,但这个carrier 效率是很低的,现在的执行计划是使用绑定变量,就走carrier 索引,而如果我不走绑定变量,不条件写死
select *
FROM t_res_flt b
WHERE b.fltdate >= to_date(‘2008-07-07’, 'YYYY-MM-DD')
AND b.fltdate <= to_date(‘2008-07-07’, 'YYYY-MM-DD')
AND b.carrier = ‘MU'
AND b.depapt = 'PEG'
AND b.arvapt = 'Y'
他就走fltdate这个索引,不知道是什么问题,走时间索引查询速度是非常快的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/40011/viewspace-667180/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/40011/viewspace-667180/