【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】3230
【问题描述】需要禁止走某个索引的hint怎么写
比如,我有个索引【IDX_RB_TRAN_HIST_1】 当查询走这个索引时就很慢,可不可以用hint禁止这条sql使用这个索引。
【复现路径】
不走索引,走什么快呢,没有禁用索引的HINT 有全表扫和使用其他索引的HINT
2 个赞
你好,当前使用的OB版本是?
OB3.2.4版本有提到,NO_INDEX Hint 可以控制执行计划对指定的表不走某个索引,在一些场景下可以帮助优化器选择最优路径。不过后续没有提到,可能是不符合预期效果,禁用了。
不使用索引的场景建议尝试 FULL Hint走全表扫
3 个赞
你的意思是不走索引还是不走指定的索引呢
2 个赞
可以指定走主键吗? 怎么写hint
2 个赞
你的意思是某条SQL不想走索引吗?简单点找到一个好的执行计划直接绑就行
还有个办法就是指定索引为invisible状态,这样优化器也不会选择这个索引
2 个赞
INDEX(TBL_NAME PRIMARY)
3 个赞
我们也遇到这个情况了,二线也没什么好办法,就走效率慢的。绑定也走,奇了怪了。
1 个赞
走索引都慢, 说明你这个索引建的不合理。
2 个赞
使用这个试试/*+ NO_INDEX(table_name index_name) */
2 个赞
这个应该可以
/+no_index(tablename idxname)/