Selektionsoperationen des Ausführungsplans (Oracle)

FILTER

Die Operation FILTER zeigt, dass innerhalb einer Verarbeitung einer SQL-Abfrage nach bestimmten Ausdrücken oder Bedingungen gefiltert wird. Zu diesen Ausdrücke oder Bedingungen gehören alle Arten von Prädikaten, Vergleiche zwischen beteiligten Unterabfrage-Bedingungen sowie EXISTS- und NOT EXISTS-Unterabfragen (und andere Formen quantifizierter Unterabfragen?). Die Suchbedingungen kommen in den WHERE- und HAVING-Klauseln der SQL-Abfrage und in den ON-Bedingungen von Joins in der FROM-Klausel vor.


CONCATENATION

Die Operation CONCATENATION kommt in einem Ausführungsplan einer SQL-Abfrage vor, wenn die zurückgegebenen Zeilen von zwei oder mehreren Rowsets verkettet werden sollen. Diese Operation verursacht selbst keine Kosten und sie dient nur der Verknüpfung der Datensätze.

Der Oracle-Optimizer setzt zur Auswahl der Operation CONCATENATION voraus, dass es sich bei der SQL-Abfrage um eine disjunktive SQL-Abfrage handelt. Eine disjunktive SQL-Abfrage enthält eine OR-Klausel in der WHERE-Klausel.

Man kann den Optimizer bei der Erstellung des Ausführungsplans auch anweisen, die Operation CONCATENATION zu benutzen, indem man den Hint USE_CONCAT in der SQL-Abfrage anwendet.

Fast alle Datenbanken arbeiten ein Statement von links nach rechts ab. Eine Ausnahme hierbei ist Oracle. Oracle arbeitet mit dem CBO (Optimizer) jedoch von links nach rechts. Sobald in einer OR-Verknüpfung eine Bedingung erfüllt ist, ist auch die gesamte OR-Verknüpfung erfüllt. Für den Anwendungsentwickler bedeutet dies, dass er sich überlegen sollte, welche der durch OR-verbundene Bedingungen am wahrscheinlichsten erfüllt bzw. nicht erfüllt werden. Auf die Komplexität der Bedingungen sollte auch geachtet werden.

Es ist möglich, die Reihenfolge der Abarbeitung einer WHERE-Bedingung durch den Hint ORDERED_PREDICATES anzugeben.

Siehe auch: Ausfuehrungsplanoperationen?, SQL-Tuning?, Optimizer, Ausführungsplan einer SQL-Abfrage, Statistiken, Hints, Werkzeuge zum SQL-Tuning

Quellen:

Kategorie: Tuning, S