Bazen mevcut db’deki sql plan baseline’ların sık değiştirilebilmesi veya eşlenik bir db ortamına taşınması ihtiyaçları doğabilir. Bu durumda aşağıdaki gibi sql planlara ait baseline’ların yedeğini alıp aktarabiliriz ;

select * from dba_sql_plan_baselines;

create table d_bck.dba_sql_plan_baselines_160217 as select * from dba_sql_plan_baselines;

select * from d_bck.dba_sql_plan_baselines_160217;
 EXEC dbms_spm.create_stgtab_baseline (table_name => 'MY_STG_TAB_160217', table_owner =>'SYSTEM' , tablespace_name => 'USERS');

select * from SYSTEM.MY_STG_TAB_160217;
 DECLARE
  l_plans_packed PLS_INTEGER;
 BEGIN
  l_plans_packed := DBMS_SPM.pack_stgtab_baseline(
  table_name => 'MY_STG_TAB_160217',
  table_owner => 'SYSTEM');

DBMS_OUTPUT.put_line('Plans Packed: ' || l_plans_packed);
 END;

select * from SYSTEM.MY_STG_TAB_160217;
 expdp \'/ as sysdba\' DIRECTORY=EXPORT_BACKUP_DIR tables= SYSTEM.MY_STG_TAB_160217 DUMPFILE=MY_STG_TAB_160217.dmp logfile=MY_STG_TAB_160217.log
 testdb01@oracle </backup/oracle/export> expdp \'/ as sysdba\' DIRECTORY=EXPORT_BACKUP_DIR tables= SYSTEM.MY_STG_TAB_160217 DUMPFILE=MY_STG_TAB_160217.dmp logfile=MY_STG_TAB_160217.log
 Export: Release 11.2.0.3.0 - Production on Thu Feb 16 15:50:38 2017
 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
 Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
 With the Partitioning, Real Application Clusters, Automatic Storage Management and Real Application Testing options
 Starting "SYS"."SYS_EXPORT_TABLE_09": "/******** AS SYSDBA" DIRECTORY=EXPORT_BACKUP_DIR tables= DUMPFILE=MY_STG_TAB_160217.dmp logfile=MY_STG_TAB_160217.log 
 Estimate in progress using BLOCKS method...
 Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
 Total estimation using BLOCKS method: 16 MB
 Processing object type TABLE_EXPORT/TABLE/TABLE
 Processing object type TABLE_EXPORT/TABLE/PRE_TABLE_ACTION
 . . exported "SYSTEM"."MY_STG_TAB_160217" 9.272 MB 977 rows
 Master table "SYS"."SYS_EXPORT_TABLE_09" successfully loaded/unloaded
 ******************************************************************************
 Dump file set for SYS.SYS_EXPORT_TABLE_09 is:
  /backup/oracle/export/MY_STG_TAB_160217.dmp
 Job "SYS"."SYS_EXPORT_TABLE_09" successfully completed at 15:51:20

testdb01@oracle </backup/oracle/export> 
 testdb01@oracle </backup/oracle/export> ls -la
 total 19240
 drwxr-xr-x 2 oracle dba 256 Feb 16 15:50 .
 drwxrwxrwx 7 oracle dba 4096 Feb 01 11:49 ..
 -rw-r----- 1 oracle dba 9838592 Feb 16 15:51 MY_STG_TAB_160217.dmp
 -rw-r--r-- 1 oracle dba 1158 Feb 16 15:51 MY_STG_TAB_160217.log
 --****** sadece ilgili baseline'ı aktarmak için **********
 SELECT sql_handle,
  plan_name,
  enabled,
  accepted,
  fixed
  FROM dba_sql_plan_baselines
  WHERE LOWER (sql_text) LIKE '%DENEME_KOLON%';

select * from al_directories

EXEC dbms_spm.pack_stgtab_baseline ( table_name => 'MY_STG_TAB', table_owner =>'SYSTEM', sql_handle => 'SYS_SQL_818c1879b000a439',plan_name => 'SYS_SQL_PLAN_b000a439c0e983c6', FIXED => 'YES')
 --*********************************************************

impdp \"/ as sysdba\" DIRECTORY=D_DIR tables= SYSTEM.MY_STG_TAB_160217 DUMPFILE=MY_STG_TAB_160217.dmp logfile=MY_STG_TAB_160217.log
 DECLARE
  l_plans_unpacked PLS_INTEGER;
 BEGIN
  l_plans_unpacked := DBMS_SPM.unpack_stgtab_baseline(
  table_name => 'MY_STG_TAB_160217',
  table_owner => 'SYSTEM');

DBMS_OUTPUT.put_line('Plans Unpacked: ' || l_plans_unpacked);
 END;

 

Referans: https://oracle-base.com/articles/11g/sql-plan-management-11gr1

Reklam