Oracle - TRIGGER O JOB

 
Vista:
sin imagen de perfil

TRIGGER O JOB

Publicado por Rafa (16 intervenciones) el 21/09/2015 21:48:21
Buenas,

A ver si soy capaz de explicarme bien.

Tengo un DB Link hecho entre una base de datos Oracle y otra MySQL. Necesito que algunos datos de una tabla de la BD Oracle se copien a la BD MySQL.

Programe un TRIGGER que a su vez llama a un procedimiento almacenado de manera que cuando se actualiza un registro en la tabla en cuestión de Oracle me lo inserta en la MySQL.

Hasta ahí bien.

La cosa es que para pruebas va bien pero cuando lo meta en explotación tengo dudas porque los fines de semana esa tabla Oracle se va actualizando cada segundo con datos nuevos y solo algunos (del orden de 200 registros mas o menos) son los que debo pasar a MySQL.

Quizás la estrategia seguida sea muy poco óptima por lo que pensé que igual es mejor un Job que cada 12 o 24 horas me pase de Oracle a MySQL los datos del día anterior y así voy actualizando datos en MySQL.

¿Qué opináis?¿alguna sugerencia?

Gracias,

Rafa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

TRIGGER O JOB

Publicado por Rafael (328 intervenciones) el 22/09/2015 08:24:26
Hola:

Todo va en funcion del performance de tu Store Procedure en MySQL, asi como los tiempos de respuesta esperados.

Dejarlo a un JOB sabes que tendras un decalaje de informacion de 12 o 24 hrs segun lo programes.
Ahora si tu trigger tiene la logica para solo traspasar la informacion necesaria deberia ser muy rapido.

Supongamos que tomara 1 segundo el trigger, y 1 segundo la insercion en Oracle.
Al usuario final se le reflejan 2 segundos, que en terminos reales de una aplicacion en vivo suele ser imperceptible y es mas que aceptable.

A cambio la información esta en MySQL en tiempo real.

Por otro lado a parte del Decalage el procesar tantos registros al mismo tiempo no es rapido ... por lo que a parte del decalage seguro tienes una venta de ralentización del sistema.

Pero eso solo lo puedes evaluar tu, a veces es preferible el proceso diferido y otras el inmediato, pero solo el conoce de forma global el sistema puede saberlo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

TRIGGER O JOB

Publicado por Rafa (16 intervenciones) el 22/09/2015 09:25:54
Buenos días,

En primer lugar muchísimas gracias por el tiempo dedicado a responderme.

Pasando al fondo del asunto, la cuestión es que tampoco tengo mucha experiencia con bases de datos. Me han encasquetado esto en el trabajo y bueno ahí estoy en plan autodidacta haciendo lo que puedo. Bastante es haber conseguido que me funcione la primera estrategia, la del trigger.

Lo que me preocupa es que como en la base de datos Oracle los fines de semana se hacen miles de inserciones en una tabla en concreto y de esas miles solo me interesan unas 200, el trigger estará contínuamente saltanto y una vez salte se evalúa si el dato nuevo se pasa a la base de datos MySQL o no.

Entre semana no hay problema porque solo se leen los datos que me interesan y entonces no creo que tenga problema pero los fines de semana me han hecho dudar.

Mírare eso que me indicas de la performance y tal y cuando tenga claro lo que es evaluaré por si cambio de estrategia.

Tampoco necesito una actualización en tiempo real, con tener cada día a primera hora lo del día anterior me vale. Por eso pensé lo del JOB porque además igual hay forma de que el JOB primero consulte la base de datos MySQL para saber la fecha del última dato y entonces cuando la tenga pedirle a la base de datos Oracle todos los datos que sean posteriores a esa fecha. Lo que pasa es que con DB Links me falla lo de consultar o insertar un solo campo de la tabla remota, solo me funciona si consulto o inserto todos los campos de la tabla.

Muchas gracias de nuevo y si tienes alguna nueva sugerencia se agradece.

Saludos,

Rafa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar