Anfang des Inhaltsbereichs

Hintergrunddokumentation Gleichheitsbedingung Dokument im Navigationsbaum lokalisieren

Gleichheitsbedingungen sind Suchbedingungen mit Vergleichsprädikat.

Für den SQL-Optimierer gelten folgende Einschränkungen für Gleichheitsbedingungen:

     Operator ist nur der Vergleichsoperator =

     Die Gleichheitsbedingungen haben eine der folgenden Formen:

<column_spec> = <extended_value_spec>

<column_spec> = <subquery>

Nur wenn eine Gleichheitsbedingung in dieser Form vorliegt, kann der SQL-Optimierer sie zum Ermitteln einer optimalen Suchstrategie auswerten. Wenn Gleichheitsbedingungen in einer anderen Form vorliegen, dann versucht der SQL-Optimierer sie umzuformen.

Ausdrücke der folgenden Formen formt der SQL-Optimierer in Bedingungen ohne NOT mit entsprechend negiertem Operator = um:

...NOT(<column_spec> <> <extended_value_spec>)

...NOT(<column_spec> <> <subquery>)

Der SQL-Optimierer verarbeitet dann die umgeformte Bedingung weiter.

Beispiele

Die bei den Erläuterungen zum SQL-Optimierer verwendeten Beispiele stützen sich auf die Demo-Datenbank DEMODB und ihre vollständigen Demo-Daten im Schema HOTEL.

Konzepte des Datenbanksystems, Objekte im Schema HOTEL

Beispiel

SELECT * FROM hotel.customer
  WHERE name = 'Smith'

Qualifikation: name = 'Smith'
Primärschlüssel der Tabelle CUSTOMER:
cno
Indizes über qualifizierte Spalten:
FULL_NAME_INDEX (name, firstname)
genutzte Suchstrategie: RANGE CONDITION FOR INDEX

Der Index FULL_NAME_INDEX (name, firstname) kann genutzt werden, um alle Einträge mit dem Namen Smith zu finden.

Ergebnis der EXPLAIN-Anweisung

TABLENAME

COLUMN_OR_INDEX

STRATEGY

PAGECOUNT

CUSTOMER

FULL_NAME_INDEX

RANGE CONDITION FOR INDEX

34

 

NAME

(USED INDEX COLUMN)

 

 

 

RESULT IS NOT COPIED,
COSTVALUE IS


6

Weitere einfache Beispiel-SQL-Anweisungen finden Sie im StrukturlinkSQL-Tutorial.

Siehe auch:

EXPLAIN-Anweisung

SQL-Referenzhandbuch, Vergleichsprädikat (comparison_predicate)

Ende des Inhaltsbereichs