Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   que os parece este planteamiento (https://www.clubdelphi.com/foros/showthread.php?t=41381)

felixgo 14-03-2007 13:27:52

que os parece este planteamiento
 
Hola

voy a migrar una aplicación de BDE a FIBplus y me gustaría que me dieseis vuestra opinión sobre este plenteamiento.
Voy a definir dos transaciones para toda la aplicación una para lectura y otra para escritura, las consultas que sólo utilice para rellenar combos... usarán la de lectura y las que sean actualizables utilizarán la de lectura para leer y la de escritura para actualizar.
Voy a utilizar cachedupdates para los dataset actualizables, para hacer la modificaciones en el cliente y mandar juntos todos los cambios al servidor y controlar las transaciones explicitamente para minimizar el tiempo de trasnsación de escritura algo asi
try
trasn.StartTransaction;
DataSetCabecera.ApplyUpdate;
DataSetLineas.ApplyUpdates;
......
Tras.Commit

Tengo alguna duda, la trasación de lectura la puedo abrir al comenzar la aplicación y dejarla abierta todo el tiempo o cmbiene abrirla y cerrarla?

Cualquier comentario será bien recibido, ya que este cambio implica bastente tiempo espero no equivocarme, y que el rendimiento de la aplicación mejore significativamente

Gracias

Neftali [Germán.Estévez] 14-03-2007 13:50:49

Cita:

Empezado por felixgo
Tengo alguna duda, la trasación de lectura la puedo abrir al comenzar la aplicación y dejarla abierta todo el tiempo o cmbiene abrirla y cerrarla?

Yo así a "bote pronto" te diría que no lo hicieras; Primeramente porque es justo lo contrario de la definición de una transacción. Una transacción debe ser lo más corta posible. Lo segundo, creo que te puede dar problemas de datos incongruentes, fantasmas, lecturas sucias y demás... dependiendo de la configuración que escojas.

Otra desventaja es que seguramente bajará el rendimiento, ya que el hecho de "arrastrar" la transacción conlleva más operaciones.

No se, si a alguien se le ocurre alguna ventaja de esta configuración que la diga.

felixgo 14-03-2007 14:09:23

Entonces me recomiendas abrir y cerrar la transación por cada consulta? debería asociar una transación a cada consulta? De todas formas en un formulario necesitio varias consultas(agentes, formas de pago, descuentos....) que muetro en combos o en grid. la transación debería estar abierta el mismo tiempo que la consulta, de lo contrario se cierra la consulta.
a no ser que el data set lo marque como cachedupdates aunque no se vaya a actualizar, hay alguna penalización el rendimiento si pongo cahcedupdates a true?
gracias

Nelet 14-03-2007 14:10:25

Opino exactamente igual. Incluso a lo de la transacción de lectura no le veo ningún sentido.

mamcx 14-03-2007 17:18:20

Con firebird/Interbase no tiene gracia porque estas usan un modo generacional, que permite tener "versiones" y que no utiliza locks en la base de datos, o sea, es muy optimo tanto pa' leer como pa' escribir.

Con otros motores si tiene sentido. No solo lo de lectura y escritura sino ademas tunear el modo de aislamiento de la transaccion.

Nelet 14-03-2007 17:20:30

Habrá que leer más, porque todo me suena. Hay que ver lo que aprende uno por estos lares.


La franja horaria es GMT +2. Ahora son las 18:22:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi