1. OBJETIVO:
  2. Mostrar cómo reconstruir un índice existente en base de datos ORACLE 10g y ver que índices deberían de ser reconstruidos.


  3. INTRODUCCIÓN
  4. Es importante periódicamente examinar y determinar qué índices son susceptibles de ser reconstruidos. Cuando un índice está descompensado puede ser porque algunas partes de éste han sido accedidas con mayor frecuencia que otras. Como resultado de este suceso podemos obtener problemas de contención de disco o cuellos de botella en el sistema. Normalmente reconstruimos un índice con el comando  ALTER INDEX


  5. ¿CUANDO SERÍA CONVENIENTE RECONSTRUIR UN ÍNDICE?
  6. Es importante tener actualizadas las estadísticas de la base de datos. Para saber si las estadísticas se están lanzando correctamente podemos hacer una consulta sobre la tabla dba_indexes y ver el campo last_analyzed para observar cuando se ejecutaron sobre ese índice las estadísticas.

    SELECT index_name, last_analyzed
    FROM dba_indexed
    WHERE table_owner=’nb_usuario’

    Nota: Siendo nb_usuario el nombre del esquema del usuario para el que queramos validar las estadísticas. (lanzar con  usuario SYS )


    Para actualizar las estadísticas utilizamos el paquete DBM_STATS. Podemos actualizar las estadísticas de todos los objetos de un esquema de la siguiente forma:

    Execute DBMS_STATS.gather_schema_stats(‘Esquema’);

    Nota: Sustituimos esquema por el nombre de nuestro esquema a actualizar (lanzar con usuario SYS)


    Una vez actualizadas las estadísticas de los índices de la base de datos lanzamos la siguiente consulta:

    SELECT index_name, blevel,
      decode(blevel,0,'OK BLEVEL',1,'OK BLEVEL',2,
      'OK BLEVEL',3,'OK BLEVEL',4,'OK BLEVEL','BLEVEL HIGH') OK
    FROM dba_indexes where table_owner='Propietario';

    Nota: Sustituimos Propietario por el esquema o propietario que queramos verificar (lanzar con usuario SYS )


    Con esta sentencia obtendremos el nombre nombre del índice, el blevel y si es correcto.

    INDEX_NAME BLEVEL OK
    INX_CUENTA 1 OK BLEVEL
    INX_TRABAJO 0 OK BLEVEL
    INX_DINERO   BLEVEL HIGH

    Los índices que deberíamos de reconstruir son los que en la columna ok aparecen como BLEVEL HIGH.

    Blevel ( branch level ) es parte del formato del B-tree del índice e indica el número de veces que ORACLE ha tenido que reducir la búsqueda en ese índice. Si este valor está por encima de 4 el índice debería de ser reconstruido.


  7. COMANDO ALTER INDEX
  8. Como hemos comentado esta sentencia se utiliza para cambiar o reconstruir un índice existente en la base de datos.

    Para poder ejecutar este comando el índice debe de estar en el propio esquema donde intentes ejecutarlo o deberías de tener el privilegio alter any index.

    También tenemos que tener en cuenta que para realizar la reconstrucción de un índice deberíamos de tener cuota suficiente sobre el tablespace que lo lanzamos.


    Para reconstruir un índice bastaría con lazar la siguiente sentencia

    ALTER INDEX <index_name> REBUILD;


    Para reconstruir una partición de un índice podríamos hacer lo siguiente

    ALTER INDEX <index_name> REBUILD PARTITION <nb_partition> NOLOGGING;

    Nota: En algunos casos cuando alguno de los índices tiene algún tipo de corrupción no es posible reconstruirlo. La solución en este caso es borrar el índice y recrearlo.


Escribe un comentario:

Autor:

Comentarios:

No hay comentarios sobre este tutorial.



Buscar errores de Oracle


Buscar en la web

 
Web orasite.com
· Tutoriales
- Export / Import Oracle 9i
- Instalación Oracle 10g
- Archivos de configuración de red para Oracle
- Administración de usuarios
- Export Oracle 10g
- init.ora spfile.ora fichero de parámetros oracle
- Configurar modo archivelog
- Introducción Oracle 10g
- Arrancar o parar base de datos Oracle
- Tunning Oracle
- Seguridad listener Oracle 10g
- Instalación statspack
- Parámetros memoria SGA
- Activar auditoria de la base de datos
- Oracle Jobs (9i)
- Controlar espacio tablespaces
- Hotbackup de una base de datos Oracle
- Búsquedas en Oracle 10g case-insensitive
- Recover database until time
- Privilegios sysoper y sysdba
- Consultas sobre V$
- Bloquear acceso a base de datos por IP
- Problemas Oracle Jobs
- Cambiar ubicación base de datos
- Reconstrucción de índices
- Encriptación e integridad de datos en Oracle
- Configuración de memoria
- Instalación de la máquina virtual Java
- Loadjava y Dropjava en Oracle
- Cambiar a modo restricted session
- Recuperación modo noarchivelog
 
· Oracle FAQ
- Oracle database
 
· Noticias
- Oracle OpenWorld 2009
- Oracle compra Sun
- Oracle 11g presentada
- Oracle vulnerable a inyección SQL en cursores
- Procesos de negocio con Oracle
- OracleXE para Debian
 
· Descargas
- Free Toad
 
· Errores Oracle
· Libros sobre Oracle
· Sitios relacionados
- Trabajos de Oracle
- ZonaOracle.com
- AjpdSoft
- La Web del Programador
· Sitios recomendados
- Cronica24.com
- TPV
- Buscar trabajo
Los contenidos de esta web son producto de la colaboración de sus usuarios, por lo que puede haber erratas. Si encuentras una información incorrecta agradeceremos que nos lo comuniques en nuestra dirección:
Cualquier información aquí publicada es de libre distribución, siempre y cuando se haga referencia mediante un link al documento original.
Orasite.com