今天开发使用两张不同的表,这两张表的索引相同,去分别关联另外两张表,但是走的索引不同,不太明白其中的原理。
使用的EXCH_AIR_MATCHED表,表中的所有如下:
使用的EXCH_OTHER表,表中的索引如下:
使用EXCH_AIR_MATCHED关联的查询解释计划
使用EXCH_OTHER关联的解释计划
而在EXCH_OTHER表使用了hint后的解释计划
*这里需要注意EXCH_OTHER表使用hint需要把原来使用inner join关联,改为直接关联才可以使用视图的hint
我认为其中的原因应该是表中数据量的问题,Oracle可能不认为是最优的索引。
参考的文档:
Oracle使用hint的对比 https://www.cnblogs.com/emilyyoucan/p/7873041.html
Oracle使用hint介绍 https://blog.csdn.net/weixin_39769183/article/details/116446826