Anfang des Inhaltsbereichs

Hintergrunddokumentation EXPLAIN-Anweisung für Joins Dokument im Navigationsbaum lokalisieren

Wenn die EXPLAIN-Anweisung auf Joins angewendet wird, werden folgende Informationen angezeigt:

     Reihenfolge, in der die Tabellen abgearbeitet werden, wenn die SELECT-Anweisung ausgeführt wird

     Ob ausgehend von den Werten in den Join-Spalten der alten Zwischenergebnistabelle direkt oder über eine Invertierung auf die Zeilen einer neuen Tabelle zugegriffen werden kann

     Suchstrategie, nach der in der jeweils neuen Tabelle gesucht wird, wenn auf die Zeilen dieser Tabelle nicht direkt oder über eine Invertierung zugegriffen werden kann

Beispiele

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

Konzepte des Datenbanksystems, Objekte im Schema HOTEL

Beispiel

EXPLAIN
SELECT customer.cno, customer.title, customer.name,
       customer.zip, city.name, city.state, customer.address
  FROM   hotel.customer, hotel.city
  WHERE  customer.zip = city.zip

Join-Tabellen: CUSTOMER und CITY
Qualifikation:
customer.zip = city.zip
genutzte Suchstrategie für CITY: TABLE SCAN
genutzte Suchstrategie für CUSTOMER: JOIN VIA KEY RANGE

Ergebnis der EXPLAIN-Anweisung

TABLENAME

COLUMN_OR_INDEX

STRATEGY

PAGECOUNT

CITY

 

TABLE SCAN

1

CUSTOMER

 

JOIN VIA KEY RANGE

1

 

 

TABLE TEMPORARY SORTED

 

 

ZIP

(USED SORT COLUMN)

 

 

 

RESULT IS COPIED
COSTVALUE IS


13

Die Join-Abarbeitung beginnt mit dem Zugriff auf die Tabelle CITY. Diese wird mit der Suchstrategie TABLE SCAN abgearbeitet.

Für den Join-Übergang auf die Tabelle CUSTOMER mit der Strategie JOIN VIA KEY RANGE wird die Spalte ZIP genutzt.

Beim Join wird immer eine Ergebnismenge aufgebaut (RESULT IS COPIED).

Weitere einfache Beispiel-SQL-Anweisungen finden Sie im SQL-Tutorial, StrukturlinkJoins: Informationen aus mehreren Tabellen.

Siehe auch:

Suchstrategien für Joins

Liste aller Suchstrategien

SQL-Referenzhandbuch, EXPLAIN-Anweisung (explain_statement), JOIN-Prädikat (join_predicate)

Ende des Inhaltsbereichs