35
Inderpal S. Inderpal S. Johal Johal , , President ORACLE 11g SQL Plan Management Dec. 6 th , 2007

ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

Embed Size (px)

Citation preview

Page 1: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

Inderpal S. Inderpal S. JohalJohal,,President

ORACLE 11g SQL Plan Management

Dec. 6th, 2007

Page 2: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

2ORACLE 11g SMB

AgendaAgendaExecution 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

Page 3: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

3ORACLE 11g SMB

Execution Plan and factor affecting itExecution Plan and factor affecting itExecution plan define how Oracle find or writes the data to satisfy DML statement

Execution plan define whether Oracle will use Index or Which Index to be used and the like

Factor affecting Execution Plan and then the BusinessOptimizer Version due to Database upgradeOptimizer StatisticsOptimizer parametersSchema definition Changes

Solution : Prior to 11gFreeze critical plans using Stored Outlines/ProfileFreeze Statistics

Page 4: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

4ORACLE 11g SMB

Without SQL Plan Management ???Without SQL Plan Management ???First Time SQL is parsed and an execution plan is generated

PARSE

HJ

HJ

GB

EXECUTE

Verified thatPlan is givingAcceptableperformance

Optimizer GeneratedBest Cost plan

Page 5: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

5ORACLE 11g SMB

Without SQL Plan Management ???Without SQL Plan Management ???Database Server Environment Changed

Upgrade Database or Stats re-Gathered or Parameter Change or soNew Plan generated regardless of performance impactDoes new Plan meet required performance criteria ???

PARSE

NL

NL

GB EXECUTENot Acceptable

PLAN

Changes Forced Optimizer to Generate

New execution plan

Page 6: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

6ORACLE 11g SMB

Why SQL Plan ManagementWhy SQL Plan ManagementProvide Guaranteed Plan Stability

Maintain good execution plan in SQL Baseline

Only known or verified plans are used

Plans are verified

Manually

Automatically by daily maintenance Job

Only comparable or better plan are included to SQL Baseline

Main benefit is the performance stability of the system

Page 7: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

7ORACLE 11g SMB

11g SQL Plan Management Pre11g SQL Plan Management Pre--RequisitesRequisites

Initialization Parameter Setting

1. optimizer_use_sql_plan_baselines=TRUE

[Default is TRUE]

Enable Optimizer to use SQL Plan baselines

2. optimizer_capture_sql_plan_baselines=TRUE

[ Default is FALSE]

[ Require Oracle Tuning Pack ]

Enable Oracle to Capture SQL Plan to be included in baseline

SYSAUX Tablespace should be ONLINE

Page 8: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

8ORACLE 11g SMB

11g SQL Plan Management 11g SQL Plan Management ArchitectureArchitecture

Statement log

PARSE

NL

NL

GBEXECUTE

OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE

Acceptable Plan

Page 9: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

9ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.Execute the SQL query First time from SCOTT SchemaSQL> SELECT sal TESTING

FROM emp ;

Check the SQL is available in SQL PLAN BaselineSQL> SELECT sql_text, sql_handle, optimizer_cost, enabled, fixed, accepted

FROM DBA_SQL_PLAN_BASELINES

WHERE sql_text LIKE '%TESTING%'

no rows selected

Page 10: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

10ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.

Statement log

PARSE

NL

NL

GBEXECUTE

OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE

Acceptable Plan

RepeatableSQL

statement

Plan history

Planbaseline

NL

NL

GB

Page 11: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

11ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.Execute the SQL query SECOND time from SCOTT SchemaSQL> SELECT sal TESTING

FROM emp ;

Check the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, accepted

FROM DBA_SQL_PLAN_BASELINES

WHERE sql_text LIKE '%TESTING%'

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

Page 12: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

12ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.Execute the SQL query SECOND time from SCOTT SchemaSQL> SELECT * FROM TABLE ( DBMS_PLAN.DISPLAY_SQL_PLAN_BASELINE(

SQL_HANDLE=>’ SYS_SQL_f9ec8ef45d47d320',FORMAT=> ‘BASIC'));

PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------SQL handle: SYS_SQL_f9ec8ef45dSQL text: select sal TESTING from emp--------------------------------------------------------------------------------Plan name: SYS_SQL_PLAN_5d47d3dEnabled: YES Fixed: NO Accepted: NO Origin: AUTO-CAPTURE--------------------------------------------------------------------------------| Id | Operation | Name |----------------------------------| 0 | SELECT STATEMENT | || 1 | SORT AGGREGATE | || 2 | INDEX RANGE SCAN| III |--------------------------------------------------------------------------------

Page 13: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

13ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.

Statement log

PARSE

Make the Change in System like Index or Collect Stats or Change Optimizer version

RepeatableSQL

statement

Plan history

Planbaseline

NL

NL

GB

HJ

HJ

GB

HJ

HJ

GB

Page 14: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

14ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.

Statement log

NL

NL

GBEXECUTE

Make the Change in System like Index or Collect Stats or Change Optimizer version

RepeatableSQL

statement

Plan history

Planbaseline

NL

NL

GB

HJ

HJ

GB

Page 15: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

15ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.Execute the SQL query again from SCOTT SchemaSQL> SELECT sal TESTING

FROM emp ;

Check the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, accepted

FROM DBA_SQL_PLAN_BASELINES

WHERE sql_text LIKE '%TESTING%'

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 NO

Page 16: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

16ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.

Statement log

SQL Repeated Several Times result High Load SQL in AWR

RepeatableSQL

statement

Plan history

Planbaseline

NL

NL

GB

HJ

HJ

GB

AWR

AutomaticSQL Tuning

task

HJ

HJ

GB

Page 17: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

17ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.

Statement log

SQL Repeated Several Times result High Load SQL in AWR

RepeatableSQL

statement

Plan history

AWR

AutomaticSQL Tuning

task

HJ

HJ

GB

Planbaseline

NL

NL

GB

HJ

HJ

GB

Page 18: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

18ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.Execute the SQL query again from SCOTT SchemaSQL> SELECT sal TESTING

FROM emp ;

Check the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, accepted

FROM DBA_SQL_PLAN_BASELINES

WHERE sql_text LIKE '%TESTING%'

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

Page 19: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

19ORACLE 11g SMB

SQL Plan Management Architecture SQL Plan Management Architecture contd.contd.Check the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, acceptedFROM DBA_SQL_PLAN_BASELINESWHERE sql_text LIKE '%TESTING%'

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 No

SQL> DECLAREindy NATURAL;

BEGINindy := 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 YESSYS_SQL_PLAN_6d1231d select sal TESTING from emp; SYS_SQL_f8de7fr6dd 1 YES NO YES

Page 20: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

20ORACLE 11g SMB

11g SQL Plan Selection Flow11g SQL Plan Selection Flow

YesYes

Plan partof baseline?

Plan partof history?YesYes

NoNo

HJ

GB

HJ

HJ

GB

HJ>

Select baseline planwith lowest cost

YesYes

NoNo

Plan history

Planbaseline

HJ

GB

HJ

HJ

GB

HJ…

HJ

GB

HJ

HJ

GB

HJ

YesYesNoNoHJ

GB

HJ

NoNo

HJ

GB

HJ

HJ

GB

HJ

O_U_S_P_B=TRUEO_U_S_P_B=TRUE

OPTIMIZER_USE_SQL_PLAN_BASELINES=TRUE

Page 21: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

21ORACLE 11g SMB

More ways to Load SQL BaselineMore ways to Load SQL BaselineAlready covered SQL Baseline methods

Using init.ora parameter OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=TRUE

Using 11g Daily Automatic SQL Tuning TaskUsing DBMS_SPM.ALTER_SQL_PLAN_BASELINE to move Plan from Plan History to PLAN Baseline

More Manual method to Load SQL BaselineLoad SQL Plans from Cursor CacheExport /Import from one Database to another

Page 22: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

22ORACLE 11g SMB

Enabling SQL Plan BaselineEnabling SQL Plan BaselineCheck the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, acceptedFROM DBA_SQL_PLAN_BASELINESWHERE sql_text LIKE '%TESTING%'

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 No

SQL> 1 SET SERVEROUTPUT ON2 SET LONG 100003 DECLARE4 report clob;5 BEGIN6 report := DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE(7 sql_handle => ' SYS_SQL_f8de7fr6dd ');8 DBMS_OUTPUT.PUT_LINE(report);9* END;

/

Page 23: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

23ORACLE 11g SMB

Loading SQL Plan from Cursor CacheLoading SQL Plan from Cursor CacheSQL> SELECT sql_id,sql_text FROM v$sqlv$sql WHERE sql_text LIKE '%INDYTEST%‘;SQL_ID SQL_TEXT364s6t88vhd select sql_id,sql_text from v$sql where sql_text like '%INDYTEST%‘

Load SQL Plan from Cursor CacheDECLARE

my_plans pls_integer; BEGIN

my_plans := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE( sql_id => 364s6t88vhd '); END; /

Check the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, acceptedFROM DBA_SQL_PLAN_BASELINESWHERE sql_text LIKE '%TESTING%'

PLAN_NAME SQL_TEXT SQL_HANDLE ORIGIN ENA ACC------------------------------- ------------------------------------- ----------------------------- ---------------------- ------ -----

SYS_SQL_PLAN_5d47d3d select sal TESTING from emp; SYS_SQL_f9ec8ef45d MANUAL-LOAD YES YESSYS_SQL_PLAN_6d1231d select sal TESTING from emp; SYS_SQL_f8de7fr6dd AUTO-CAPTURE YES YES

Page 24: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

24ORACLE 11g SMB

Drop SQL Plan from BaselinesDrop SQL Plan from BaselinesCheck the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, acceptedFROM DBA_SQL_PLAN_BASELINESWHERE sql_text LIKE '%TESTING%'

PLAN_NAME SQL_TEXT SQL_HANDLE ORIGIN ENA ACC------------------------------- ------------------------------------- ----------------------------- ---------------------- ------ -----SYS_SQL_PLAN_5d47d3d select sal TESTING from emp; SYS_SQL_f9ec8ef45d MANUAL-LOAD YES YES

Drop the Above SQL plan from the BaselineDECLARE

drp binary_integer; BEGIN

drp :=DBMS_SPM.DROP_SQL_PLAN_BASELINE( SQL_HANDLE => ‘SYS_SQL_f9ec8ef45d ‘, PLAN_NAME => ‘SYS_SQL_PLAN_5d47d3d ‘);

END; /

Page 25: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

25ORACLE 11g SMB

Displaying SQL Plan BaselinesDisplaying SQL Plan BaselinesCheck the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, acceptedFROM DBA_SQL_PLAN_BASELINESWHERE sql_text LIKE '%TESTING%'

PLAN_NAME SQL_TEXT SQL_HANDLE OPTIMIZER_COST ENA FIX ACC------------------------------- ------------------------------------- ----------------------------- ---------------------- ------ ----- -----SYS_SQL_d0848cb7105fffdf select sal TESTING from emp; SYS_SQL_f9ec8ef45d 2 YES NO YESSYS_SQL_d0848cb7105fffdf select sal TESTING from emp; SYS_SQL_f8de7fr6dd 1 YES NO No

SQL> SELECT * FROM TABLE( DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE( sql_handle=> ’ SYS_SQL_d0848cb7105fffdf ',format=>'basic'));

Page 26: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

26ORACLE 11g SMB

DisaplayingDisaplaying SQL Plan BaselinesSQL Plan BaselinesPLAN_TABLE_OUTPUT--------------------------------------------------------------------------------

SQL handle: SYS_SQL_c45581c7730096e3SQL text: select /* INDYTEST */ * from emp where job='DBA' and rownum < 50--------------------------------------------------------------------------------

Plan name: SYS_SQL_PLAN_730096e31877483cEnabled: YES Fixed: NO Accepted: NO Origin: AUTO-CAPTURE--------------------------------------------------------------------------------

Plan hash value: 4187151245-----------------------------------------------| Id | Operation | Name |-----------------------------------------------| 0 | SELECT STATEMENT | || 1 | COUNT STOPKEY | || 2 | TABLE ACCESS BY INDEX ROWID| EMP || 3 | INDEX RANGE SCAN | EMPJOB |-----------------------------------------------Plan name: SYS_SQL_PLAN_730096e38694f11d

Enabled: YES Fixed: NO Accepted: YES Origin: AUTO-CAPTURE--------------------------------------------------------------------------------

Plan hash value: 1973284518-----------------------------------| Id | Operation | Name |-----------------------------------| 0 | SELECT STATEMENT | || 1 | COUNT STOPKEY | || 2 | TABLE ACCESS FULL| EMP |-----------------------------------36 rows selected.

Page 27: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

27ORACLE 11g SMB

SQL Management BaseSQL Management Base

SQL Management BaseSYSAUXSYSAUX

TablespaceTablespace

Statement logPlan history

Planbaseline

Plan history

Planbaseline

Plan verificationbefore

integration to baseline

RepeatableSQL

statement

SQLprofile

AutomaticSQL Tuning

taskNL

NL

GB

HJ

HJ

GB

NL

NL

GB

NL

NL

GB

Page 28: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

28ORACLE 11g SMB

SQL Management BaseSQL Management Base

SQL Management BaseSYSAUXSYSAUX

TablespaceTablespace

Statement logPlan history

Planbaseline

Plan history

Planbaseline

SQLprofile

NL

NL

GB

HJ

HJ

GB

NL

NL

GB

NL

NL

GB

Three Important maintenanceDisk Space UsagePurging Policy

Page 29: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

29ORACLE 11g SMB

SQL Management BaseSQL Management Base

SQL Management Base SYSAUXSYSAUX

Statement logStatement log

Plan history

Planbaseline

SQLprofile

HJ

HJ

GB

NL

NL

GB

DISK Space Usage for Sql Management BaseBy default SMB space limit is 10% of the size of SYSAUXAllowable Limit is 1% - 50%Warning issued in Alert log by a weekly Background processWarning will continue every week until

SMB space limit is increasedDBMS_SPM.CONFIGURE( 'space_budget_percent',30);

Size of SYSAUX is increasedSpace used by SMB is decreased by purging SQL baseline/Profiles

Disk Space UsagePurging Policy

Page 30: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

30ORACLE 11g SMB

SQL Management BaseSQL Management Base

SQL Management Base SYSAUXSYSAUX

Statement logStatement log

Plan history

Planbaseline

SQLprofile

HJ

HJ

GB

NL

NL

GB

SMB Purging PolicyBy default , any PLAN not used for 53 Weeks are purged53 Weeks ensures that Plan is available for any yearly SQL jobSMB retention range is 5 weeks – 523 weeks [ little more than 10yr]SMB Retention period can be configured [50 weeks]

DBMS_SPM.CONFIGURE( ‘plan_retention_weeks',50);

select parameter_name, parameter_valuefrom dba_sql_management_config;

Disk Space UsagePurging Policy

Page 31: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

31ORACLE 11g SMB

Exporting/Importing SQL BaselinesExporting/Importing SQL Baselines

Plan history

Planbaseline

NL

NL

GB

HJ

HJ

GB

DBMS_SPM package- CREATE_STGTAB_BASELINE

STAGE

TABLE

expdp impdp

STAGE

TABLE

DBMS_SPM package- PACK_STGTAB_BASELINE

DBMS_SPM- UNPACK_STGTAB_BASELINE

Plan history

Planbaseline

NL

NL

GB

HJ

HJ

GB

TEST DATABASE PRODUCTION DATABASE

Page 32: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

32ORACLE 11g SMB

SQL Plan Baseline Main AttributesSQL Plan Baseline Main AttributesPlan history

Planbaseline

HJ

HJ

GB

NL

NL

GB

HJ

HJ

GB

DBA_SQL_PLAN_BASELINESMain Column Name SQL_TEXT Actual SQL TextORIGIN MANUAL-LOAD | AUTO-CAPTURE | MANUAL-SQLTUNE |AUTO-SQLTUNEENABLED YES | NOACCEPTED YES | NOFIXED YES | NOAUTOPURGE YES | NOOPTIMIZER_COST

ENABLED butNot ACCEPTED

ENABLED andACCEPTED

…...

Page 33: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

33ORACLE 11g SMB

DBA_SQL_PLAN_BASELINE viewDBA_SQL_PLAN_BASELINE viewCheck the SQL is available in SQL PLAN BaselineSQL> SELECT plan_name, sql_text, sql_handle, optimizer_cost,

enabled, fixed, acceptedFROM DBA_SQL_PLAN_BASELINESWHERE sql_text LIKE '%TESTING%'

PLAN_NAME SQL_TEXT SQL_HANDLE ENABLED ACCEPTED FIXED------------------------------- ------------------------------------- ----------------------------- -------------- -------------- ---------SYS_SQL_d0848cb7105fffdf select sal TESTING from emp; SYS_SQL_f9ec8ef45d YES NO YESSYS_SQL_d0848cb7105fffdf select sal TESTING from emp; SYS_SQL_f8de7fr6dd YES NO NO

DECLAREv_chg Natural;

BEGINv_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

Page 34: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

Q U E S T I O N SA N S W E R S

Page 35: ORACLE 11g SQL Plan Management - NYOUG 11g SMB 2 Agenda Execution plan and factor affecting it How optimizer behaves without 11g Sql Plan Management Why SQL Plan Management

35ORACLE 11g SMB

[email protected]@datasoftech.com