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 Joinspalten der alten Zwischenergebnistabelle direkt oder über eine Invertierung auf die Zeilen einer neuen Tabelle zugegriffen werden kann
· Strategie, nach der in der jeweils neuen Tabelle gesucht wird, wenn auf die Zeilen dieser Tabelle nicht direkt oder über eine Invertierung zugegriffen werden kann
EXPLAIN SELECT one.key ten1.keyft1, ten2.keyft2
FROM one, ten1, ten2
WHERE ten1.keyft1 < 100
AND ten1.ft1 = one.keyf
AND one.indf =
ten2.keyft2
AND ten2.keyft2 < 100;
Diese EXPLAIN-Anweisung liefert folgendes Ergebnis zurück:
TABLE NAME |
COLUMN_ |
STRATEGY |
PAGE COUNT |
TEN1 ONE TEN2 |
KEYFT1 KEF KEYFT2 |
RANGE CONDITION FOR KEY COLUMN JOIN VIA KEY COLUMN RESULT IS COPIED, COSTVALUE IS |
1250 125 1463 97 |
Dieses Ergebnis ist folgendermaßen zu interpretieren:
§ Die Joins der Tabellen werden in der Reihenfolge TEN1, ONE, TEN2 durchgeführt.
§ Die Tabelle TEN1 hat eine Gesamtgröße von 1250 Seiten, die Tabelle ONE hat 125 Seiten und die Tabelle TEN2 hat 1463 Seiten.
§ Die I/O-Kosten für die Ausführung der SQL-Anweisung betragen 97 Seiten.
§ Die Tabelle TEN1 wird über den Schlüssel keyft1 selektiert, auf die Tabellen ONE wird über den Primärschlüssel KEF, auf die Tabelle TEN2 über den Primärschlüssel KEYFT2 zugegriffen.
Siehe auch:
Erläuterungen zu den Beispielen