20/6/17

Tomar estadísticas

   Este es un tema bastante importante para aprovechar los planes de ejecución más adecuados a cada sentencia. Realmente consiste en recopilar y actualizar el catálogo de Oracle.

Por ejemplo, podemos consultar la vista de Oracle "ALL_TABLES", si no tomamos estadísticas de la tabla, en dicha vista no aparecerán actualizados el número de registros, campo NUM_ROWS.

Podéis realizar un ejemplo, crear una tabla cualquiera e insertarle datos, buscar la tabla en dicha vista:

select * from all_tables where TABLE_NAME = 'TABLA';

Veréis como no ha actualizado dicha vista, a continuación ejecutar las estadísticas para la tabla creada:

DBMS_STATS.GATHER_TABLE_STATS( ownname => 'OWNER', tabname =>  'TABLA');

Y en este momento si que os aparecerá actualizada.

En el caso de querer tomar las estadísticas a nivel de particiones:

DBMS_STATS.GATHER_TABLE_STATS( ownname => 'OWNER', tabname =>  'TABLA', partname => 'NOMBRE_PARTICION', estimate_percent => null, granularity=> 'PARTITION', cascade => TRUE );

Un saludo, gracias.

No hay comentarios :

Publicar un comentario