Versuchen Sie, alle Hinweise in einem einzigen Kommentarblock anzugeben, wie in diesem Beispiel aus der wunderbaren Oracle-Dokumentation (http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/hintsref.htm).
16.2.1 Festlegen eines vollständigen Satzes von Hinweisen
Beim Verwenden von Hinweisen müssen Sie in einigen Fällen möglicherweise einen vollständigen Satz von Hinweisen angeben, um den optimalen Ausführungsplan zu gewährleisten. Wenn Sie beispielsweise eine sehr komplexe Abfrage haben, die aus vielen Tabellen-Joins besteht und wenn Sie nur den INDEX-Hinweis für eine bestimmte Tabelle angeben, muss der Optimierer die verbleibenden Zugriffspfade und die entsprechenden Join-Methoden bestimmen. Daher kann es sein, dass der Optimierer den INDEX-Hinweis nicht unbedingt verwendet, weil er möglicherweise festgestellt hat, dass der angeforderte Index aufgrund der vom Optimierer ausgewählten Join-Methoden und Zugriffspfade nicht verwendet werden kann.
In Beispiel 16-1 gibt der LEADING-Hinweis die genaue Join-Reihenfolge an, die auf den verschiedenen Tabellen verwendet werden soll; auch die Join-Methoden für die verschiedenen Tabellen sind angegeben.
Beispiel 16-1 Festlegen eines vollständigen Satzes von Hinweisen
SELECT /*+ LEADING(e2 e1) USE_NL(e1) INDEX(e1 emp_emp_id_pk)
USE_MERGE(j) FULL(j) */
e1.first_name, e1.last_name, j.job_id, sum(e2.salary) total_sal
FROM employees e1, employees e2, job_history j
WHERE e1.employee_id = e2.manager_id
AND e1.employee_id = j.employee_id
AND e1.hire_date = j.start_date
GROUP BY e1.first_name, e1.last_name, j.job_id ORDER BY total_sal;