ho incontrato questa domanda in un'intervista e non aveva idea di come rispondere:Forza utilizzo indice in Oracle
c'è un tavolo che ha un indice su una colonna, e la tua ricerca:
select * from table_name where column_having_index="some value";
La query impiega troppo tempo e scopri che l'indice non viene utilizzato. Se pensi che il rendimento della query sarà migliore usando l'indice, come potresti forzare la query a utilizzare l'indice?
Inoltre, nelle versioni più recenti di Oracle (10g + penso) è possibile specificare il nome della colonna anziché il nome dell'indice, ad es. '/ * + INDICE (nome_tabella column_having_index) * /' –
/* + INDICE (nome_tabella (column_having_index)) */... opr vedere la mia risposta per sintassi più complessa –
La sintassi corretta è (devi usare l'alias di tabella!): seleziona/* + INDICE (xxxTABLExxx index_name) */da table_name xxxTABLExxx – xnagyg