Trabajando con Oracle Warehouse Builder - OWB Parte 3 - Un poco de Afinación en OWB

Estaba trabajando en un mapping que me estaba poniendo problema de performance. Comencé a revisar el explain del query que genera OWB para el mapping y vi que tenía con un costo de 57.634.199.428. Aunque en muchas ocasiones la BD dice mentiras en este costo, decidí guiarme por este y comenzar a trabajar en índices para poder bajar el costo y el resultado fue 14.899.776 (En una entrada posterior voy a hablar en temas de afinación en la BD Oracle).

Mejoro mucho, sin embargo puse a correr durante seis horas el mapping y no fui capaz de lograr que terminara. Comencé a analizar más y decidí sacar una parte del mapping y llevarlo a un mapping aparte para poder realizar algunas operaciones en un paso antes del mapping y lo lleve tal como lo tenía en el mapping, a continuación les muestro como estaba el mapping.

Revise el query generado para este mapping en el explain y el costo me dejo boquiabierto.



Increíble que el costo fuera de 14591695... Casi lo mismo que el anterior mapping en el que tenía una pequeña telaraña (por lo grande del mapping) entonces me puse a analizar mi problema y me di cuenta que el problema es:

El comportamiento de esto es lo más pesado.


Lo que me tiene sorprendido es el comportamiento con este elemento porque es realmente muy malo, por eso decidí eliminar de manera inmediata el subquery filter y poner un join para mejorar el rendimiento de mi mapping.

El query que genera este mapping me dio como resultado este explain.


¿Puede mejorar más? Claro que si se puede mejorar más porque todo es factible de mejorar en esta vida, sin embargo por ahora vamos a quedar allí porque solo quiero resaltar el problema que resulta de tener un subquery_filter y que es mil veces mejor tener un joiner, por favor en sus desarrollos trate en la medida de lo posible hacer esto para que no tenga problemas.

Comentarios

  1. He leído con mucho interés tus publicaciones sobre OWB y me parecen muy buenas. hasta ahora has hablado por donde empezar: mapping, ERL, etc. Me gustaría sabr tus experiencias al final del camino, ¿como se explotan los datos por los usuarios? ¿que interfaz tienen? ¿vale la pena todo el esfuerzo con OWB cuando se puede hacer lo mismo programando PL/SQL como siempre? Te reitero mi agradecimiento por que compartas tus experiencias con todos.

    ResponderEliminar
  2. Hola Angel, muchas gracias por el aporte, voy a preparar algo con esto que me has dicho allí. De entrada te digo que en el tema de programando PL/SQL vs OWB, debes meter un elemento nuvo y es ODI porque a OWB le estamos comenzando a dar su carta de defunción debido a que Oracle decidio que en la BD 12 no va mas OWB así que solo lo tenemos disponible hasta la versión 11... Pero dejare varias experiencias para artículos que pondré muy rápido.

    ResponderEliminar
  3. Hola Angel, te dejo el link del primer escrito sobre experiencias, será la primera entrada pero no la última, espero escribirles las experiencias con la herramienta: http://intenego.blogspot.com/2014/03/algunas-experiencias-en-owb-parte-1.html

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Como Construir la dimension tiempo en SQL SERVER

Reiniciar el Intelligence Server de Microstrategy

Extraccion, Transformación y Carga