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