jueves, 6 de agosto de 2009

Compactando segmentos de la base de datos con el Asesor de Segmentos

Una de las grandes ventajas que nos da la versión de Oracle Server 10g con respecto a sus antesesores, es la consola administrativa de la base de datos.

Uno de los componentes agregados a esta consola, de los más útiles es el Asesor de Segmentos.

Oracle utiliza el trabajo del Asesor de Segmentos Automático para detectar regularmente problemas de segmentos en ventanas de mantenimiento. A manera de presentación de tabla, despliega el contenido resumen de espacio mínimo reclamable para los segmentos evaluados por el asesor a nivel del tablespace.

Las evaluaciones se hacen de manera diaria sobre un porcentaje del total del espacio utilizado del tablespaces, por tanto, los resultados son de carácter parcial y no total, requeriendo de una labor de revisión periódica, para poder tener controlado en su totalidad, las recomendaciones que proceden de las ejecuciones realizadas por el Asesor de Segmentos Automático y de los trabajos del asesor de segmentos planificado por el usuario ó definido de facto a la hora de la instalación de la herramienta.

Los análisis se basan en la tendencia de crecimiento del segmento. Oracle recomienda reducir o reorganizar estos segmentos para liberar el espacio no utilizado.


El asistente, me permite escoger entre todas las recomendaciones realizadas durante cada fase de ejecución del asesor, ó verificar sólo las recomendaciones del último análisis realizado.

Una tabla con la información del tablespace analizado porcentualmente, nos indicará cuál es su utilización actual y el espacio reclamable del tablespace, como producto de la fragmentación generada en los distintos segmentos. El asesor evalua tanto segmentos de tablas como de índices.


Al ver el detalle de las recomendaciones realizadas para un tablespaces específico, nos mostrará el nombre de los segmentos afectados y las variaciones de espacio ocupado, que se darían si se realiza el proceso de compactación.


Usted puede elegir correr la compactación sobre un objeto específico ó sobre un conjunto de selección.

También a la hora de ejecutar el proceso, puedo escoger entre liberar el espacio asignado al segmento, o simplemente reorganizar los bloques que pertenecen a este.

Al escoger la opción de liberación de espacio y compactar segmento, haciendo click en la opción de mostrar SQL, podremos visualizar la instrucción a ejecutar:
  • alter table PVHLINEAS_MOVIMIENTO enable row movement

  • alter table PVHLINEAS_MOVIMIENTO shrink space


Si es la primera ocasión que realizamos el proceso, es necesario habilitar la opción de "row movement" a nivel de la tabla, sino, sólo la segunda sentencia será visualizada.


Una vez que decidimos continuar, el asesor nos permite programar una tarea que puede ser ejecutada de forma inmediata o bién programada a una hora determinada. Esta tarea es definida como un job de la base de datos.


El visualizador de trabajos programados, nos permite ver el progreso del proceso programado, así como el historial de otras tareas realizadas. Nos muestra el estado final de la tarea, así como estadísticas de duración, fecha, prioridad con que fue ejecutada la tarea y un link para poder visualizar lo que la tarea ejecutó.


Existen muchas razones por las cuáles un segmento sufre fragmentación. Entre las más importantes estan:



  • El borrado de registros
  • Insert de registros en las tablas, donde le porcentaje de utilización del bloque esta por encima de la medición dada por el parámetro pctused.
  • En los índices, el borrado de registros provoca que se generen entradas inválidas en los punteros. Cuando borramos el registro de una tabla y la misma contiene índices, las entradas generadas en los índices no son actualizadas. Por eso se dice que los índices no son libre de mantenimiento. Cada cierto tiempo, es necesario recrearlos, para eliminar este tipo de situaciones, sobre todo, como lo indiqué anteriormente, en tablas con excesivas tareas de borrado.

Los análisis se generan en forma automática todos los días, gracías a una tarea programada de facto en la base de datos, sin embargo, este análisis puede ser ejecutado de forma manual. Para ello, es recomendable primero, actualizar las estadísticas de los tablespaces o objetos que deseamos analizar.






1 comentario:

  1. Pregunta
    ¿Que privilegio se debería asignar a un aprendiz de dba para que pueda ir conociendo el oracle enterprise manager?
    gracias de antemano.

    ResponderEliminar

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar