miércoles, 3 de junio de 2009

Cuándo y cómo reconstruir un índice?

A veces nos preguntamos... en qué basarnos para justificar (o no) la reconstrucción de algún índice de nuestro motor?

Muchas veces (al menos por mi parte) reconstruimos el índice solamente si nuestra aplicación nos dice "Ups! index or partition of such index is in unusuable state (ORA-01502)"... pero sino, no nos acordamos de su existencia!

He aquí una sugerencia...
select index_name, blevel from dba_indexes where table_owner='Propietario'

Si esta sentencia nos devuelve en blevel un valor > 4, es recomendable recontruir el índice en cuestión. Blevel (branch level) indica el número de veces que Oracle ha tenido que reducir la búsqueda en ese índice.

Para reconstruirlo...
alter index Nombre_índice rebuild;

4 comentarios:

  1. Gracias viejo!!!! me salvaste la cabeza!!!

    ResponderEliminar
  2. La sentencia para reconstruirlo está mal, seria la siguiente:

    alter index Nombre_Indice rebuild;

    ResponderEliminar
  3. Tienes razón... le erré al dedazo! Lo corrijo ya mismo!!!

    ResponderEliminar
  4. Gracias por el tiempo y el conocimiento!!! Saludos desde Mexico

    ResponderEliminar