You are hereDinamica de Indices en Oracle - Parte 3

Dinamica de Indices en Oracle - Parte 3


By IgnacioRuiz - Posted on 11 November 2008

Visitar el capitulo anterior Dinamica de Indices en Oracle - Parte II o desde el principio Dinamica de Indices en Oracle - Parte I

If you want to see this article on English, jump to Index Dynamics - Part III

En esta entrega, compartiré con ustedes los resultados finales del experimento y observaciones a 4 indices, realizados durante 2 semanas en su habitat: un ambiente productivo Oracle.

Debo aclarar que algunas muestras no estan disponibles, ya que el comando ANALYZE falla si el objeto sobre el que se pretende realizar esta bloqueado, y siendo este un ambiente "vivo" de producción y de acuerdo al calendario de muestras fijado para consistencia en los resultados, la preferencia la tienen siempre los procesos de negocio cuando se presentaron colisiones. La gráfica de Espacio Usado muestra esos datos ND (No Disponibles); sin embargo para los indices INDEX1 e INDEX4, los datos requeridos para obtener las Deltas del 7 de Noviembre fueron interpolados. El único indice del cual se obtuvieron todas sus muestras, es por afortunada coincidencia el INDEX2, nuestro conejillo de indias.

Veamos primero la grafica de Espacio Usado, en ella podran observar que se mantienen las tendencia de decrecimiento, o sea, que el espacio libre en los nodos ha ido incrementandose.


Comparemos los porcentajes de Espacio Usado, contra las muestras iniciales tomadas antes del rebuild. Observemos que transcurridos 15 dias, algunos indices estan a mitad de camino de estar a los mismos niveles de espacio libre. Eso me recuerda las dudas frecuentes sobre el mantenimiento a indices: “¿Debemos reconstruir los indices? ¿Cuanto tiempo durara la estructura en ‘optimo’ estado?”

Espacio Usado    Principio    Hoy
INDEX1(10c)    69%     99%
INDEX4(6c)     63%     74%
INDEX2(4c)     53%     77%
INDEX3(2c)     45%     92%

Recordemos una de las conclusiones parciales emitidas en el articulo anterior (Dinamica de Indices en Oracle - Parte II)
”Los bloques Rama (Branch) son la parte de la estructura del indice que resulta mas estresada despues de la reconstrucción”
De acuerdo a esa hipotesis, la observación debe estar en línea con una actividad minima durante los dias siguientes, y así fue como ocurrió, según se puede observar en la gráfica.


Comentario: observemos como el pico en variación presentado el 6 de Noviembre para el INDEX1, comparado con el comportamiento previo. Ese día en particular, el ritmo de transacciones motivo una mayor reorganización dentro del indice, evidenciando el impacto que tienen los patrones de procesamiento del negocio en las estructuras de datos.

Por cierto que este sistema productivo atravesó por un periodo de semana de cierre mensual, de ahi que el incremento en actividad y los procesos de cierre dejaron huella en las observciones. Un ejemplo de esto son las graficas resultantes para los bloques Hoja (Leafs), con notables valores pico.

Visitemos ahora a nuestro sujeto de investigación: INDEX2. La gráfica a continuación, está en línea y resume lo comentado con anterioridad, no hay sorpresas.


Este estudio motivó las siguientes interrogantes:
1) ¿Que impacto tienen los parametros del indice PCT_FREE or PCT_USED en el ritmo de estabilización del indice?
2) ¿Las constantes de división implementadas en el algoritmo B-Tree son los valores óptimos?
3) ¿Es necesaria la característica de modificar PCT_FREE/PCT_USED posterior a la realización de una reconstrucción?
(ese es el tema con las investigaciones: das respuesta a una pregunta y aparecen nuevas dudas en su lugar)

Conclusiones

* Un nivel alto de estres a nivel de bloques Rama (Branch) puede ser verificado, tan pronto como las transacciones comienzen a modificar la estructura del indice. El periodo de estres o la intensidad, dependerán del ritmo de transacciones y los atributos del indice.

Recomendación

* No reconstruya los indices antes de procesos o dias con carga alta, si se espera haya muchas escrituras: el trabajo adicional causado por la división de bloques puede impactar el desempeño.

Todavía tengo la tarea pendiente de la propuesta de modelo matematico para el Ritmo de Degeneración de Indices... estoy trabajando en ello, con la ayuda del Cálculo. La próxima entrega hablará sobre eso, ya estoy muy cerca...

Muchas gracias por su atención, no olviden dejar sus comentarios.

Ir al artículo anterior Dinamica de Indices en Oracle - Parte II o si desea ir a la primera entrega Dinamica de Indices en Oracle - Parte I


Visita mi pagina en Oracle Community
Visita mi blog en Blogger

Suscripcion a Contenido Sindicado(RSS)

Suscribir a Databases Hispamerica por Email



Distribuir

Distribuir contenido

Follow DatabasesLA on Twitter

En línea

En este momento hay 0 usuarios y %count invitados en línea.

Estadisticas

Locations of visitors to this page

hidden hit counter