SQL Plan Management - garantierte Performace


SQL Plan Management ist die lange gewünschte Antwort auf ungewollt wechselnde Ausführungspläne und garantiert, das Änderungen von Ausführungsplänen immer zu einer besseren Performance führt.


Überblick

Die Performance jeder Datenbank hängt stark von den genutzten Ausführungspänen statt. In der Vergangenheit stellten sich ändernde Ausführungspläne eine tägliche Herausforderung für den Betrieb der DB dar. In einigen Fällen wurden die Ausführungspläne über Stored Outlines festgeschrieben oder Statistiken wurden eingefrohren und nicht neu erstellt.

SQL Plan Management erlaubt jetzt erstmals eine konsistente Administration von Ausführungsplänen. Somit wird sichergestellt, das sich Execution-Pläne nur zum besseren ändern können. Mit SPM managed der Optimizer existiernde Ausführungspläne und nutzt nur solche, die als bekanntermaßen gut oder als von der DB verifiziert gelten. Neu genutzte Pläne haben also immer eine vergleichbare oder bessere Performance, nie aber eine schlechtere

SPM besteht aus 3 Komponenten:

SQL Plan Baseline Capture
Erstellt akzeptierte (trusted) Execution Pläne für alle relevanten SQL Statements und speichert diese in der SQL Management Base im SYSAUX Tablespace
SQL Plan Baseline Selection
Garantiert, das nur akzeptierte (trusted) Execution Pläne genutzt werden. Alle neuen Execution Pläne werden in einer Plan-Historie gespeichert. Execution Pläne können somit im Status Akzeptiert (aktuell genutzt) , nicht akteptiert und neu (neu gefundene Pläne) oder nicht aktzeptiert und rejected (überprüfte Pläne mit schlechterer Performance) sein
SQL Plan Baseline Evolution
Prüft alle neue gefunden Pläne und markiert diese als 'accepted' oder 'rejected'./dd>

Aktivierung

Für die Befüllung der SQL Management Base können unterschiedliche Methoden genutzt werden, die einfachste ist das Aufzeichen der aktuell genutzten Pläne

alter system set optimizer_capture_sql_plan_baselines=true scope=both;

.

Hinweis: Bei Datenbanken mit einer Vielzahl von unterschiedlichen SQL Statemens oder wenn keine Bind-Variablen genutzt werden kann die SQL Management Base sehr schnell sehr groß werden. Dies führte in Tests zu massiven Problemen.

Um SPM nutzen zu können muss es aktiviert werden, die Nutzung ist dabei unabhängig von der oben genannten Aufzeichnungsoption

alter system set optimizer_use_sql_plan_baselines= TRUE;

.