Translate

miércoles, 26 de septiembre de 2012

Export / Import estadisticas de Oracle optimizer


          Oracle nos da la facilidad de poder exportar e importar las estadísticas de la base de datos , esto nos puede ser de mucha ayuda , por ejemplo en el caso que tenemos la base de datos funcionando en óptimas condiciones podemos tener una snapshot de las estadísticas y usarlas como backup, ya que aveces el mantenimiento que realiza Oracle de forma automatica la noche nos pude modificar algún plan de ejecución  y esto desencadena en un dolor de cabeza al día siguiente.

        También  podemos insertas las mismas estadísticas que tenemos  en producción  en un ambiente de testing , de esta manera obtendríamos  los mismos  planes , etc ,etc ..

Aquí  les dejo  el procesamiento para esto :

1- creo la tabla de estadísticas
   execute dbms_stats.create_stat_table('CHARLY','STATS');

Donde CHARLY es el nombre del esquema y STATS  es el nombre de la table donde se almacenaran  las estadísticas.


2- Realizamos un exp de las estadísticas del schema que nos interesa.
   execute dbms_stats.export_schema_stats('CHARLY','STATS','PROD_2012-04-10');

Este comando carga  información  sobre las estadísticas del esquema en la tabla STATS , y le colocamos  como nombre PROD_2012-04-10 ya que podemos hacer que este procedimiento sea regular y podremos identificar cuando realizamos este export.

por tabla
   EXECUTE DBMS_STATS.EXPORT_TABLE_STATS (
                                       ownname => 'CHARLY',
                                       tabname => 'nombre_de_la tabla_ a_exportar_estadisticas',
                                       stattab => 'STATS',
                                       statid => 'tabla_prod_2012-04-10');


3- Realizamos un export de la tabla STATS para transportar las estadísticas , se importa al schema destino

 exp \' / as sysdba\' table=charly.stats file=stats.dmp
 imp \' / as sysdba\' full=y  file=stats.dmp

4- Importamos  las estadísticas desde  la tabla STATS al esquema destino
execute dbms_stats.import_schema_stats('CHARLY','STATS',' PROD_2012-04-10');

Hacemos lo mismo si  lo que queremos importar es solo las estadísticas de una tabla:

execute dbms_stats.import_table_stats(ownname => 'CHARLY',
                                                  tabname => ' nombre_de_la tabla_ a_exportar_estadisticas ',
                                                  stattab => 'STATS',
                                                  statid => ' tabla_prod_2012-04-10 ');



No hay comentarios:

Publicar un comentario