Der SQL-Compiler umfaßt eine Phase des Umschreibens der Abfrage, die SQL-Anweisungen in eine Form umsetzt, die leichter optimiert werden kann, so daß ein besserer Zugriffsplan ausgewählt werden kann. Das Umschreiben von Abfragen ist besonders wichtig bei Abfragen, die sehr komplex sind, d. h. auch bei solchen Abfragen, die viele Unterabfragen und Verknüpfungen enthalten. Tools zur Generierung von Abfragen erstellen häufig diese sehr komplexen Arten der Abfrage.
Sie können die Anzahl der Regeln für das Umschreiben von Abfragen, die auf eine SQL-Anweisung angewendet werden, beeinflussen, indem Sie die Optimierungsklasse ändern (siehe Anpassen der Optimierungsklasse).
Einige Ergebnisse dieses Umschreibens der Abfrage können mit Hilfe der EXPLAIN-Einrichtung abgefragt oder von Visual Explain angezeigt werden.
Es gibt drei Hauptkategorien des Umschreibens, die der SQL-Compiler durchführen kann: