FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Correcto uso de transacciones
Hola a todos
Utilizo delphi 6 e Ibx e Firebird 1.5.3 , he leido bastante sobre lo lento que se puede volver firebird a veces es mas a este momento tengo ese problema , pero me gustaria me ayudaran a entender el uso de transacciones abrirlas y cerrarlas oportunamente Cuando realizo consultas que tipo de transacciones utilizar etc Utilizo bastante CommitRetainig , pero estoy cambiandolos a lo menos posible su uso , inicio una grabacion com Transa.active y se supone que cuando grabo no debo hacer nada mas o al final deberia poner algo como Transa.active=false , cuando utilizo una factura el componente que maneja los detalles IBxdetalles tiene una transaccion con commitretaing cada vez que se hace una insercion por cuestiones logicas deben ser grabados los Items porque tambien se resta el saldo del inventarios ... Hay alguna manera mas de atacar el problemas De antemano Gracias Nota : Como es la manera correcta de utilizar las transacciones en programacion es decir su sintaxis
__________________
IVAND |
#2
|
||||
|
||||
Descarga este documento, es del compañero Kinobi, de lo mejor que puedes leer al respecto.
|
#3
|
||||
|
||||
ok
Yo tengo usando IBX's aprox. 1 año y con respecto al componente TIBtransaction en el nivel de aislamiento lo tengo como ReadCommited y no he tenido problemas de lentitud, inclusive en las consultas uso el mismo nivel y no hay problemas al respecto.
En lo que se refiere al uso en las Facturas yo también uso el CommitRetaining, inclusive en todos lo lados uso este mismo, es cierto que en el abuso de este puede ocasionarte problemas en el recolector de basura de firebird, pero esto se corrige tan sólo aplicar un Backup y un Restore. Por otro lado ya salio la versión 1.53 de Firebird porque no la encuentro, sólo encuentro la 1.52.4731 . Saludos.... |
#4
|
|||
|
|||
Si es una nueva release que corrige bug de la anterior version puedes descargarla de la pagina oficial
Con respecto al otro compañero el abuso de los comiitretaining tiende a relentizar la base pero por ejemplo cuando hago una consulta que parametros debe utilizar la consulta , se deberia crear una nueva transaccion para las consultas en fin de antemano gracias
__________________
IVAND |
#5
|
||||
|
||||
Checa Esto....
El uso de las Transacciones tiene que ver tambieén en el tipo de Formas que usas en las pantallas, es decir, en mi caso uso formas modales por lo tanto uso 1 Sola transacción para todo el sistema, pero si tuviese formas No Modales que se puedan Abrir varias ventanas al mismo tiempo, te recomendaría usar diferentes Transacciones por cada Ventana que abres, al decir diferentes, quiero decir lo siguiente, por ejemplo:
En una aplicacion de cuentas por cobrar, se puede dar de alta a clientes, registrar cargos y abonos, etc. al entrar al Registro de Clientes Abro 1 transacción y si abro otra Ventana de Cargos y Abonos Abro otra transacción independiente a la del Registro de Clientes, el motivo de esto, es, si tuvieses 1 sola transacción para formas No Modales al tener varias pantallas abiertas se te va a presentar el problema de que si en una de ellas le dan un commit ó commiretaining en las otras también entran en el misma Abrazo de la Transacción, para evitar esto se opta por tener Transacciones Independientes. Con Respecto a las consultas puedes usar el mismo tratamiento(ReadCommited), no vas hacer Modificaciones a ninguna tabla solamente son Consultas. Saludos. Última edición por AGAG4 fecha: 26-11-2005 a las 18:55:46. Razón: Corrección |
#6
|
|||
|
|||
Listo probare y les comentare alguna duda
__________________
IVAND |
|
|
|