Inicio » Oracle » Estadisticas » Ejecutar las estadísticas

Ejecutar las estadísticas

El paquete DBMS_STATS permite generar y manejar las estadísticas para manejar el optimizador basado en costos. Los procedimientos que componene este paquete son:

Procedure Recolecta

GATHER_INDEX_STATS                 Las estadísticas de índices
GATHER_TABLE_STATS                 Estadísticas de tablas ,columnas e índices
GATHER_SCHEMA_STATS             Estadísticas de todos los objetos del esquema
GATHER_DATABASE_STATS        Estadísticas de todos los objetos de la base de datos
GATHER_SYSTEM_STATS              Estadísticas del sistema sobre CPU y I/O

A continuación vamos a porner algunos ejemplos de como se ejecutan las estadísticas.
Obtener estadísticas de la table empleados en el esquema scott:

EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'SCOTT', tabname=>'EMPLEADOS' ) ;
PL/SQL procedure successfully completed.

Los dos parametros OWNNAME para el nombre del esquema y TABNAME para el nombre de la tabla son obligatorios. En el ejemplo se utiliza la sintaxis con el nombre de los parámetros antes de poner su valor (ownname=>) para identificarlos. Se pude poner simplemente el valor sin identificar el parámetro, siguiendo el orden en que están definidos en el paquete, por ejemplo;

EXEC DBMS_STATS.GATHER_TABLE_STATS('SCOTT' , 'EMPLEADOS' ) ;
PL/SQL procedure successfully completed.

El procedimiento tiene parámetros adicionales como ESTIMATE_PERCENT
Si no se especifican los parámetros adicionales se le da un valor por defecto. En los ejemplos anteriores al no especificarse el parámetro ESTIMATE_PERCENT se calculan las estadísticas completas.
Si todos lo parámetros no caben en una línea o se quiren escribir en varías líneas, se debe escribir así el procedimiento:

BEGIN
  DBMS_STATS.GATHER_TABLE_STATS(
    ownname=>'SCOTT' ,
    tabname=>'EMPLEADOS' ,
    cascade=>TRUE) ;
END;
/

El parámetro CASCADE le indica al procedimiento que recoja las estadísticas tanto de los índices como de las tablas. Para conocer los diferentes parámetro que tiene los procedimientos se puede utilizar el comando DESCRIBE de SQL*Plus.
La diferencia entre Oracle 10g y superiores y Oracle 9 I es que en Oracle 9 la actualización de las estadísticas no se hace automáticamente, normalmente se utiliza el cron o un servicio en Windows o se puede crear un job de base de datos.

Comando ANALYZE:


Se puede utilizar también la sentencia ANALYZE para generar las estadísticas para el optimizador basado en costos.
Oracle recomienda que se utilice el paquete DBMS_STATS en vez de ANALYZE para las estadísticas. DBMS_STATS permite recolectar estdísticas en forma paralela, recolecta estadísticas para objetos particionados, etc. Incluso en algunos casos el obtimizador basado en costos solo utilizará las estadísticas generadas por el DBMS_STATS.
El comando ANALIZE solo se de utilizar para recolectar estadísticas no relacionadas con el optimizador basado en costos como:
    El uso de las sentencias VALIDATE o LIST_CHINED_ROWS
    Recolectar información sobre freelist bolques.

8 pensamientos en “Ejecutar las estadísticas

  1. Tengo una duda. Puedo hacer esto??? para analizar mas de una esquema?

    DBMS_STATS.GATHER_TABLE_STATS(
    ownname=>’SCOTT’ , ‘TIGER’

  2. Estos parámetros permiten realizar Estadísticas al 100% tengo entendido que el parámetro “cascade”. Con cual si puedo generarlas al 100%

    • version 11g , lo que me pidieron hacer es : generar estadisticas al 100 % de tablas e indices, la pregunta era ¿como se cuando una estadistica se genera al 100 %? y ¿como lo hago?

      • Creo que mi ultima nota “Recolección automática de estadísticas” encontraras más información de como funcionan las estadísticas en Oracle 11.
        Ahora no sé la sintaxis correcta pero busca las opciones de DBMS_STATS.SET_GLOBAL_PREFS

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