Database Reference
In-Depth Information
• dernormalisierteSQL-TextdieserSQL-AnweisungmitdemnormalisiertenSQL-Text
aus der SQL Plan Baselines übereinstimmt,
• dieSQLPlanBaselineanwendbarist.Dasbedeutet,dassdieindieserSQL-Anweisung
beteiligten Tabellen dieselbe Struktur wie die jeweiligen Tabellen aus der SQL Plan Ba-
seline haben. Die relevanten Indices müssen auch vorhanden und identisch aufgebaut
sein.
Die Verwaltung der SQL Plan Baselines erfolgt über das Package DBMS_SPM. Die be-
stehenden SQL Plan Baselines kann man in der View DBA_SQL_PLAN_BASELINES er-
mitteln. Leider beinhaltet diese View keine Spalte für den Hashwert des jeweiligen Ausfüh-
rungsplans. Man kann aber diesen Hashwert und den Ausführungsplan mit der Funktion
DBMS_XPLAN.DISPAY_SQL_PLAN_BASELINE ermitteln. Dafür kann auch das Skript
one_xplan_baseline11.sql benutzt werden, das den Aufruf der obigen Funktion beinhaltet.
Alle SQL Plan Baselines werden im Tablespace SYSAUX gespeichert. Stillschweigend
kann man dafür bis 10 % des Speichers dieses Tablespace in Anspruch nehmen. Da die
SQL Plan Baselines ziemlich viel Speicherplatz benötigen, kann es passieren, dass man
mehr als 10 % des Speichers im SYSAUX für sie braucht. Diese Quote kann man dann bis
zu 50 % erhöhen.
Wenn SQL Plan Baselines lange nicht angewendet werden, werden sie automatisch ent-
fernt. Stillschweigend passiert es nach 53 Wochen (also nach einem Jahr). Diese zeitliche
Grenze (Retention) kann man aber auch anders setzen und im Bereich von 5 bis 523 Wo-
chen variieren.
Die aktuellen Einstellungen für die Speicherquote und für die zeitliche Retention sind
in der View DBA_SQL_MANAGEMENT_CONFIG als Parameter SPACE_BUDGET_
PERCENT bzw. PLAN_RETENTION_WEEKS zu ermitteln.
14.3.1
Anlegen
Ähnlich der Stored Outlines können die SQL Plan Baselines entweder manuell für einzelne
oder automatisch für mehrere Ausführungspläne angelegt werden.
Man aktiviert die automatische Generierung der SQL Plan Baselines mit der Parameter-
einstellung optimizer _ capture _ sql _ plan _ baselines = true und deaktiviert mit optimizer _
capture _ sql _ plan _ baselines = false (das ist die Vorgabeeinstellung) entweder für eine Ses-
sion oder systemweit. Damit eine SQL Plan Baseline für eine SQL-Anweisung automatisch
angelegt wird, muss diese SQL-Anweisung mindestens zweimal ausgeführt werden. Die
erste gespeicherte Plan einer SQL-Anweisung bekommt den Status ACCEPTED='YES', die
weiteren werden mit dem Status ACCEPTED='NO' abgespeichert. Man kann eine (oder
einige) nicht akzeptierte SQL Plan Baselines mit der Funktion DBMS_SPM.EVOLVE_
SQL_PLAN_BASELINE bewerten und ggf. akzeptieren lassen (evolvieren). Wenn man
die Funktion DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE für einen nicht akzeptier-
ten Ausführungsplan aufruft, führt Oracle testweise diesen Ausführungsplan aus und ver-
Search WWH ::




Custom Search