Contacto

CONTACTAR EN CASO DE EMERGENCIAS Móvil +56963679637 - MAIL : CONSULTADBABLOCK@GMAIL.COM
- SOPORTE REMOTO EN BASE DE DATOS ORACLE - ORACLE LINUX - ORACLE VM SERVER - ORACLE RAC - ORACLE DATA GUARD
- UPGRADES - CAPACITACION

Monday, October 07, 2013

Dimensionando el tamaño de nuevos índices mediante el Package DBMS_SPACE.CREATE_INDEX_COST



DBMS_SPACE.CREATE_INDEX_COST

Necesitamos dimensionar el espacio disponible para crear índices. Muchas veces, se detectan ciertas consultas SQL requieren de ellos para obtener un mejor desempeño. Para esto revisamos si el espacio del tablespace definido para índices posee los recursos necesarios.

Opcionalmente, podemos ejecutar estadísticas sobre la tabla para determinar de forma exacta cuantas filas tiene la tabla:
exec dbms_stats.gather_table_stats(user,'TABLA');

Conectarse con el usuario SYS y ejecutar el siguiente bloque de PL/SQL:

set serverout on

declare

   calc_used_bytes NUMBER;

   calc_alloc_bytes NUMBER;

begin

   DBMS_SPACE.CREATE_INDEX_COST (

      ddl => 'create index NOMBRE_INDICE on OWNER.TABLA '||'(campo1,campo2, etc)',

       used_bytes => calc_used_bytes,

      alloc_bytes => calc_alloc_bytes

   );

   DBMS_OUTPUT.PUT_LINE('Used bytes = '||calc_used_bytes/1024/1024);

   DBMS_OUTPUT.PUT_LINE('Allocated bytes = '||calc_alloc_bytes/1024/1024);

end;

/

Donde las variables de tipo number las definimos con el siguiente nombre:

calc_used_bytes :> Esta variable permite dar una estimación de la cantidad de espacio que se requiere para los datos del índice.

calc_alloc_bytes :> Esta variable proporciona una estimación de cuanto espacio será asignado dentro del Tablespace.

El resultado indica que la cantidad estimada de bytes asignados se encuentra en el cálculo aproximado de la cantidad de espacio consumida realmente.

Used bytes = 573,61937713623046875

Allocated bytes = 1152 -> cálculo en MB del espacio consumido en el tablespace.

En resumen, los resultados pueden ir variando dependiendo del número de registros, número de columnas, tipos de datos y la precisión de las estadísticas.


No comments: