SEGMENTOS

Imagen de lenita

Forums: 

Hola que tal, necesito ayuda en este caso, no stoy muy segura de algubnas respuestas, por eso agradeceria que me ayuden. El caso es el sgtye:

En un proceso de transferencia de cuentas bancarias se procesan 500,000 registros. Diariamente se corre un proceso que utiliza un procedimiento de ejecución el cual demora 1 Hora aproximadamente. El programador revisa el código y descubre que dicha proceso hace COMMIT al final de toda la ejecución del programa.

¿Qué recomienda UD. Respecto a este procedimiento?
¿De que manera se podría optimizar?
¿Cómo Afectan los segmentos rollback a la ejecución de dicha transacción?

Respondan chicos porfa

¿Qué es lo que opinas

Imagen de acl

¿Qué es lo que opinas tú?

Esto tiene pinta de tarea de la U. Así que es difícil que te den respuestas directas. Si dieras tu opinión respecto a la pregunta podríamos discutir lo que nos parece y tal vez darte una guía.

La idea es que aprendas algo de ese curso que estas tomando.

SEGMENTOS

Imagen de lenita

Si es una tarea, pero estoy un poco confundida. En cuanto al 3er punto ¿Cómo Afectan los segmentos rollback a la ejecución de dicha transacción?, mi opinion es que si hace commit, los segementos rollback estan creciendo mas y ocuypando mas memoria, esa es mi opinion y mi duda, ojala me puedas ayudar

Lenita

¿Al hacer commit los

Imagen de acl

¿Al hacer commit los segmentos de rollback crecen? No me suena a que eso sea cierto.

Ojo, que no soy experto en bases de gatos, solo hablo desde mi ignorancia atrevida.

SEGMENTO

Imagen de lenita

ok, pero si es asi, commit hace que los segmentos crezcan. Pero igual necesito aclarar mis dudas, gracias de todos modos

Lenita

Bueno si haces commit al

Imagen de deathUser

Bueno si haces commit al final de la inserción de 500.000 registros, es claro que el segmento de roolback estará un poco grande (hacer rollback a 500 mil registros le va a tomar un buen tiempo a la base ed datos) yo diría que habría que hacer un commit cada sierto número de registros, no se, un valor más decente, 10 mil registros quizas ...??? dependiendo del tamaño de cada registro y de los recursos disponibles ...

tu que crees ...???

bye
;)

Respuesta

Imagen de Mac_Gyver

Bueno en mi experiencia en base de datos se que ese ejemplo es bastante exagerado pero bueno si lo que quieres es optimizar el tiempo en que se ejecuta el proceso debes:
1.- Analizar la estructura de las trablas involucradas, esto en caso de poder agregar indices o aplicar integridad referencial que ayuda mucho a que las consultas se ejecuten de manera mas rapida.
2.- si se hace de un servidor a otro remoto debes tener en cuenta la media de ancho de banda entre ambos.
3.- con respecto a los segmentos de roolback es importante saber con que espacio de disco estamos contando para rollback por que si es un espacio menor al requerido para contener toda la operacion muy probablemente no funcione correctamente, otra cosa que tienes que tomar en cuenta es el por que se hace el commit al final de la operacion y no como comenta un compañero en una respuesta anterior por lo general se deberia hacer (dependiendo del caso) cada 5000 registros.

y como algo para que pienses el por que no se debe poner un solo commit al final ¿Que pasa si el proceso por A o B motivo se interrumple a los 450.000 registos?, como no llegastes al ultimo commit se ejecuta el roolback y es como que no hubiera pasado nada y tendrias que empezar de cero.

espero te sirva,

ok

GRACIAS

Imagen de lenita

Hola chicos, muchas gracias por el dato, me ayudo mucho y ya despeje mis dudas gracias a su info y de inter. Mil gracias.

Lenita