Oracle Live

12/05/2016

SPM – Export and Import SQL Baselines

Filed under: Database,Laboratorios,SQL Tuning — mogukiller @ 9:44 am

En un proceso de migración de una base de datos es necesario tener en cuenta si hay planes de ejecución fijados con baselines. Os explico los pasos para exportar los baselines de una base de datos a otra.


-- Sacamos la info de las Baselines Enable y Aceptadas.

SET LONG 100
COL SQL_TEXT FOR A60
COL CREATOR FOR A20
SELECT SQL_HANDLE,CREATOR,SQL_TEXT, ORIGIN, ENABLED, ACCEPTED, FIXED,EXECUTIONS FROM DBA_SQL_PLAN_BASELINES;
/*
SQL_HANDLE                     CREATOR              SQL_TEXT                                                     ORIGIN         ENA ACC FIX EXECUTIONS
------------------------------ -------------------- ------------------------------------------------------------ -------------- --- --- --- ----------
SQL_ae3c3b5f42e8bf89           SYS                  SELECT MAX(COD_ANEXO) MAX_ANEXO FROM AC_ANEXOS WHERE COD_COR MANUAL-SQLTUNE YES YES NO    10336360
                                                    REO = :V1 GROUP BY COD_CORREO
*/

-- Informacion de la Baseline

SELECT * FROM TABLE( 
    DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE( 
        SQL_HANDLE=>'SQL_AE3C3B5F42E8BF89', 
        FORMAT=>'BASIC'));							   
/*		
--------------------------------------------------------------------------------
SQL handle: SQL_ae3c3b5f42e8bf89
SQL text: SELECT MAX(COD_ANEXO) MAX_ANEXO FROM AC_ANEXOS WHERE COD_CORREO = :V1
          GROUP BY COD_CORREO
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Plan name: SQL_PLAN_awg1vbx1fjgw942610771         Plan id: 1113655153
Enabled: YES     Fixed: NO      Accepted: YES     Origin: MANUAL-SQLTUNE
--------------------------------------------------------------------------------

Plan hash value: 508232894

---------------------------------------------
| Id  | Operation            | Name         |
---------------------------------------------
|   0 | SELECT STATEMENT     |              |
|   1 |  SORT GROUP BY NOSORT|              |
|   2 |   INDEX RANGE SCAN   | AC_ANEXOS_PK |
---------------------------------------------		
*/

-- Exportamos la baseline

conn UOG_MIGRA/temporal

BEGIN
  DBMS_SPM.CREATE_STGTAB_BASELINE(
    table_name =>'MIG_BASELINE');
END;
/
/*
PL/SQL procedure successfully completed.
*/

-- Empaquetamos la baseline que nos queremos llevar

DECLARE
my_plans number;
BEGIN
  my_plans := DBMS_SPM.PACK_STGTAB_BASELINE(
    table_name => 'MIG_BASELINE',
    enabled => 'yes',
    creator => 'SYS');
END;
/

/*
PL/SQL procedure successfully completed.
*/

-- Exportamos la tabla donde se ha guardado la baseline.

cat>exp_baseline.par
USERID='UOG_MIGRA/temporal'
DUMPFILE=mig_baseline.dmp
DIRECTORY=MIGRACION
TABLES=MIG_BASELINE
LOGFILE=mig_baseline.log

expdp parfile=exp_baseline.par

/*
  /aplicaciones/nfs_ebil/lmds/mig_baseline.dmp
*/

-- Enviamos y e importamos la tabla intermedia.

cat>imp_baseline.par
DUMPFILE=mig_baseline.dmp
DIRECTORY=MIGRACION
TABLES=UOG_MIGRA.MIG_BASELINE
LOGFILE=imp_mig_baseline.log

impdp \'/ as sysdba\' parfile=imp_baseline.par
'
/*
. . "UOG_MIGRA"."MIG_BASELINE"                  22.46 KB       1 filas importadas
El trabajo "SYS"."SYS_IMPORT_TABLE_08" ha terminado correctament
*/

-- Incorporamos la baseline

conn UOG_MIGRA/temporal
DECLARE
my_plans number;
BEGIN
  my_plans := DBMS_SPM.UNPACK_STGTAB_BASELINE(
    table_name => 'MIG_BASELINE',
	enabled  => 'yes'  ,
    accepted => 'yes' ,
    fixed	 => 'no');
END;
/

-- Evaluamos si la ha importado bien.
/*
SQL_HANDLE                     CREATOR              SQL_TEXT                                                     ORIGIN         ENA ACC FIX EXECUTIONS
------------------------------ -------------------- ------------------------------------------------------------ -------------- --- --- --- ----------
SQL_ae3c3b5f42e8bf89           SYS                  SELECT MAX(COD_ANEXO) MAX_ANEXO FROM AC_ANEXOS WHERE COD_COR MANUAL-SQLTUNE YES YES NO    10336360
                                                    REO = :V1 GROUP BY COD_CORREO
*/

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: