IN里的值过多时会造成Oracle不用索引?
A表里有10w条记录,主键名为id
select name from A where id in(.....)
如果只是100来个,会用索引
SELECT STATEMENT, GOAL = CHOOSE 87 131 6943
INLIST ITERATOR
TABLE ACCESS BY INDEX ROWID TEST A 87 131 6943
INDEX RANGE SCAN TEST PK_A 2 131
但当in里的值达到500个左右的时候,执行计划就是不会用索引了,
SELECT STATEMENT, GOAL = CHOOSE 298 537 28461
TABLE ACCESS FULL TEST A 298 537 28461
为什么会这样的?