Baselines

Creating baselines based on a plan from AWR

Create a SQL Tuning sets


BEGIN
  DBMS_SQLTUNE.CREATE_SQLSET(
    sqlset_name => 'STS01',
    description => 'SQL Tuning Set for SQL Plan Baseline from AWR');
END;

Load AWR plans

DECLARE
  cur sys_refcursor;
BEGIN
  OPEN cur FOR
    SELECT VALUE(P)
    FROM TABLE(
       dbms_sqltune.select_workload_repository(begin_snap=>start_awr_snapshot, end_snap=>end_awr_snapshot,basic_filter=>'sql_id = ''sql_id''',attribute_list=>'ALL')
              ) p;
     DBMS_SQLTUNE.LOAD_SQLSET( sqlset_name=> 'STS01', populate_cursor=>cur);
  CLOSE cur;
END;
/

Load the required plan

DECLARE
my_plans pls_integer;
BEGIN
  my_plans := DBMS_SPM.LOAD_PLANS_FROM_SQLSET(
    sqlset_name => 'STS01', 
    basic_filter=>'plan_hash_value = ''good plan_hash_value'''
    );
END;
/

Confirm plan is loaded

SELECT * FROM dba_sql_plan_baselines ;