开发者社区> 问答> 正文

Oracle数据库走索引问题 配置报错 

表T
字段:name,date,company,currency等,
索引:index_1(name, date)
index_2(company, name, currency)
SQL:
select * from t 
where name in ('123')
and company = '456'
and currency = '789'
问题:
为什么这里走的索引是index_1,/+ index(t, index_2)/ 强制走index_2索引无效,执行计划还是一样的,走的是index_1,但是去掉name这个条件走的是是index_2,为什么条件都在的时候不走index_2?

展开
收起
kun坤 2020-05-31 18:04:11 679 0
1 条回答
写回答
取消 提交回答
  • /+ index(t, index_2)/  后面加个空格试试 /*+ index(t, index_2) / ######回复 @zls1099 : /+ index(t index_2) */ 逗号换成空格######强走索引的知道了,不知道为什么使用了别名就要一定要用别名替代,表名就不行######试过了,一样的效果######好高森的样子! ######の

    2020-05-31 18:04:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载

相关镜像