stieß ich auf diese Frage in einem Interview und hatte keine Ahnung, wie zu beantworten:Force-Index Verwendung in Oracle
Es gibt eine Tabelle, die einen Index für eine Spalte hat, und Sie fragen:
select * from table_name where column_having_index="some value";
Die Abfrage dauert zu lange und Sie finden heraus, dass der Index nicht verwendet wird. Wenn Sie glauben, dass die Leistung der Abfrage mithilfe des Index besser ist, wie können Sie die Abfrage erzwingen, den Index zu verwenden?
Auch in neueren Versionen von Oracle (10g + denke ich) können Sie den Spaltennamen anstelle des Indexnamens angeben, z. '/ * + INDEX (table_name column_having_index) * /' –
/* + INDEX (table_name (column_having_index)) */... siehe meine Antwort für komplexere Syntax –
Korrekte Syntax ist (Sie müssen Tabellenalias verwenden!): Wählen Sie/* + INDEX (xxxTABLExxx index_name) */aus table_name xxxTABLExxx – xnagyg