有没有禁止使用某个索引的hint

【 使用环境 】生产环境
【 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)/