Vergleichselementtypologie und Zugriffspläne
Ein Vergleichselement ist ein Element einer Suchbedingung, das eine Vergleichsoperation definiert oder impliziert. Vergleichselemente, die in der Regel in der WHERE-Klausel einer Abfrage angewendet werden, dienen zur Verringerung des Umfangs der Ergebnismenge, die von der Abfrage zurückgegeben wird.
- Bereichsbegrenzende Vergleichselemente
- Im Index als Suchargument verwendbare Vergleichselemente
- Bei Daten als Suchargument verwendbare Vergleichselemente
- Restvergleichselemente
| Merkmal | Vergleichselementkategorie | |||
|---|---|---|---|---|
| Bereichsbegrenzend | Im Index als Suchargument verwendbar | Bei Daten als Suchargument verwendbar | Rest | |
| Verringern der Index-Ein-/Ausgabe | Yes | Nein | Nein | Nein |
| Verringern der Datenseitenein-/-ausgabe | Yes | Yes | Nein | Nein |
| Verringern der Anzahl von Zeilen, die intern übergeben werden | Yes | Yes | Yes | Nein |
| Verringern der Anzahl von Zeilen, die den Bedingungen entsprechen | Yes | Yes | Yes | Yes |
Bereichsbegrenzende und im Index als Suchargument verwendbare Vergleichselemente
INDEX IX1: NAME ASC,
DEPT ASC,
MGR DESC,
SALARY DESC,
YEARS ASC where
name = :hv1 and
dept = :hv2 and
years > :hv5Die ersten beiden Vergleichselemente (name = :hv1 and dept = :hv2) sind bereichsbegrenzende Vergleichselemente, während years > :hv5 ein im Index als Suchargument verwendbares Vergleichselement ist.years > :hv5 aus Leistungsgründen sowohl als ein bereichsbegrenztes Vergleichselement als auch als ein im Index als Suchargument verwendbares Vergleichselement behandelt.Zur Auswertung dieser Vergleichselemente verwendet das Optimierungsprogramm Indexdaten, anstatt die Basistabelle zu lesen. Im Index als Suchargumente verwendbare Vergleichselemente verringern die Anzahl von Zeilen, die aus der Tabelle gelesen werden müssen, sie beeinflussen jedoch nicht die Anzahl von Indexseiten, auf die zugegriffen wird.
Bei Daten als Suchargument verwendbare Vergleichselemente
Vergleichselemente, die nicht vom Indexmanager ausgewertet werden können, aber von den Data Management Services (DMS, Datenverwaltungsservices), werden als bei Daten als Suchargument verwendbare Vergleichselemente bezeichnet. Für solche Vergleichselemente ist in der Regel ein Zugriff auf einzelne Zeilen einer Tabelle erforderlich. Bei Bedarf rufen die DMS die zur Auswertung des Vergleichselements benötigten Spalten sowie alle anderen Spalten ab, die für die SELECT-Liste benötigt werden, jedoch nicht aus dem Index abgerufen werden konnten.
INDEX IX0: PROJNO ASCdeptno = 'D11' als ein bei Daten als Suchargument verwendbares Vergleichselement zu betrachten. select projno, projname, respemp
from project
where deptno = 'D11'
order by projnoRestvergleichselemente
- Sie verwenden korrelierte Unterabfragen.
- Sie verwenden quantifizierte Unterabfragen mit den Klauseln ANY, ALL, SOME oder IN.
- Sie lesen LONG VARCHAR- oder LOB-Daten, die in einer von der Tabelle getrennten Datei gespeichert sind.
Einige Vergleichselemente, die nur auf einen Index angewendet wurden, müssen erneut angewendet werden, wenn auf die Datenseite zugegriffen wird. Zum Beispiel wenden Zugriffspläne mit logischem Verknüpfen von Indizes über AND (Index ANDing) oder OR (Index ORing) die Vergleichselemente immer ein weiteres Mal als Restvergleichselemente an, wenn auf die Datenseite zugegriffen wird.