Professional Documents
Culture Documents
6th, 2007
Inderpal S.
Johal,
President
Agenda
Execution plan and factor affecting it
How optimizer behaves without 11g Sql Plan Management
Why SQL Plan Management
11g SQL PLAN Management Pre-Requisites
SQL Plan Management Architecture
SPM flow
Enabling SQL Plan Baselines
Loading/Dropping/Displaying SQL Plan Baseline
Space Usage/Purging for SPM
SPM View
Q&A
Optimizer Generated
Best Cost plan
GB Verified that
Plan is giving
PARSE HJ EXECUTE Acceptable
performance
HJ
Changes Forced
Optimizer to Generate
New execution plan
GB
PARSE EXECUTE
NL Not Acceptable
PLAN
NL
GB Acceptable
PARSE
NL
EXECUTE Plan
NL
Statement log
GB Acceptable
PARSE
NL
EXECUTE Plan
NL
Repeatable
SQL
statement
Statement log
Plan history
GB
Plan
NL baseline
NL
GB
PARSE
HJ
HJ
Repeatable
SQL
statement
Statement log
Plan history
GB GB
Plan
HJ NL baseline
HJ NL
NL
Repeatable
SQL
statement
Statement log
Plan history
GB GB
Plan
HJ NL baseline
HJ NL
AWR
Repeatable
SQL GB
statement
HJ
HJ
GB GB
Plan
HJ NL baseline
HJ NL
AWR
Repeatable
SQL GB
statement
HJ
HJ
Plan
baseline GB
GB
HJ
NL
HJ
NL
SQL> DECLARE
indy NATURAL;
BEGIN
indy := DBMS_SPM.ALTER_SQL_PLAN_BASELINE ('SYS_SQL_f9ec8ef45d47d320',
attribute_name => 'ACCEPTED',
attribute_value=>‘YES');
END;
/
PLAN_NAME SQL_TEXT SQL_HANDLE OPTIMIZER_COST ENA FIX ACC
------------------------------- ------------------------------------- ----------------------------- ---------------------- ------ ----- -----
SYS_SQL_PLAN_5d47d3d select sal TESTING from emp; SYS_SQL_f9ec8ef45d 2 YES NO YES
SYS_SQL_PLAN_6d1231d select sal TESTING from emp; SYS_SQL_f8de7fr6dd 1 YES NO YES
GB
Plan part
HJ O_U_S_P_B=TRUE
Yes of history? No
HJ
Plan history
Yes
Plan
No GB baseline
GB
HJ GB
HJ
GB
HJ
HJ … HJ
HJ Plan part HJ
Yes of baseline?
HJ
No
GB GB GB GB
No Yes
HJ HJ HJ HJ
>
HJ HJ HJ HJ
SQL>
1 SET SERVEROUTPUT ON
2 SET LONG 10000
3 DECLARE
4 report clob;
5 BEGIN
6 report := DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE(
7 sql_handle => ' SYS_SQL_f8de7fr6dd ');
8 DBMS_OUTPUT.PUT_LINE(report);
9* END;
/
NL Automatic
HJ NL NL SQL Tuning
task
Plan verification
before
integration to baseline
SYSAUX
SQL Management Base
Tablespace
Statement log
Plan history Plan history
Plan SQL
GB GB baseline GB profile
Plan GB
HJ NL baseline NL
… NL
NL NL
HJ NL
DBMS_SPM
- UNPACK_STGTAB_BASELINE
Plan history
Plan expdp impdp
baseline GB
GB
HJ
NL
HJ
GE
STABLE
NL
TA
Plan history
Plan
DBMS_SPM package baseline GB
GB
GE - PACK_STGTAB_BASELINE
STABLE HJ
TA NL
HJ
NL
DBMS_SPM package
- CREATE_STGTAB_BASELINE
HJ NL
HJ
DBA_SQL_PLAN_BASELINES
Main Column Name
SQL_TEXT Æ Actual SQL Text
ORIGIN Æ MANUAL-LOAD | AUTO-CAPTURE | MANUAL-SQLTUNE |AUTO-SQLTUNE
ENABLED Æ YES | NO
ACCEPTED Æ YES | NO
FIXED Æ YES | NO
AUTOPURGE Æ YES | NO
OPTIMIZER_COST
DECLARE
v_chg Natural;
BEGIN
v_chg : dbms_spm.alter_sql_plan_baseline( sql_handle=>’SYS_SQL_f8de7fr6d ‘, -
plan_name=>’SYS_SQL_d0848cb7105fffdf ‘, -
attribute_name => ‘AUTOPURGE | ENABLED | ACCEPTED | FIXED’, -
attribute_value => ‘YES | NO’);
dbms_output.put_line(i);
END; Any One Attribute
Name or Value