TAKTUM Logo


Oracle Schulung
Oracle Schulung

Oracle Tuning und Optimierung Tutorial: Hinweis an den Optimierer (Hint)
Erstellen von Hinweisen (Hints) an den Optimierer zur Beeinflussung des Ausführungsplans

Prinzip der Hints

  • Hinweise an den Optimierer
  • als Kommentar im SQL-Befehl
  • Hints müssen vom Optimierer nicht berücksichtigt werden
  • ACHTUNG: Bei Verwendung von Aliasnamen in der from-Klausel, diese auch im Hint verwenden!
  • syntaktisch falsche Hints werden ignoriert

Hint-Syntax

select /*+ hint */ ....

oder Kommentar bis zum Ende der Zeile:

select --+ hint
...

Wichtige Hints

RULE

Regelbasierten Optimierer für diesen Befehl verwenden.

ALL_ROWS

Kostenbasierten Optimierer für diesen Befehl verwenden.

INDEX (<tabelle> <index1>, <index2> ...)

Verwendung bestimmter Indizes.

PUSH_SUBQ

Sehr sinnvoll, wenn ein Subquery eine kleine Anzahl Datensätze liefert, die als Einschränkung für den Hauptquery dienen.

Hint-Beispiel

select /*+INDEX(AUFTRAG IDX_AUFTRAG_STATUS)*/
from auftrag
where datum > to_date('01.01.200','dd.mm.yyyy') and status = 'S'

Dies ist ein typischer Anwendungsfall für einen Hint. Der Index auf die Spalte "STATUS" ist nicht sehr selektiv. Deshalb wird der Optimierer eher einen Index auf "DATUM" verwenden. Da dem Programmierer aber bekannt ist, dass es relativ wenig stornierte Aufträge gibt, ist der Hint hier sinnvoll.



Stichwörter

hints hint Datenbank database explain plan Hinweise index rule all_rows PUSH_SUBQ Beispiel Beispiele