## EXPLAIN-Anweisung für Joins

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

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, Joins: Informationen aus mehreren Tabellen.

Siehe auch:

Suchstrategien für Joins

Liste aller Suchstrategien

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