Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Commit - CommitRetaining (https://www.clubdelphi.com/foros/showthread.php?t=33041)

Luzma 26-06-2006 01:06:43

Commit - CommitRetaining
 
Hola a todos, tengo una pregunta:

¿Es cierto que el uso excesivo de CommitRetaining es malo?

por excesivo entiéndase que se usa CommitRetaining siempre en vez de Commit, por la comodidad que esto implica.

No sé si se esté sacrificando rendimiento por comodidad o no sé, se llene de basura la base de datos por usar CommitRetaining.

El concepto más o menos lo entiendo, espero que alguien me pueda explicar o recomendar algunos links.

Gracias de antemano.

nemesio 26-06-2006 06:00:39

No es que commitReetaining sea malo, sino que con el commit, te aseguras que los datos quedaron grabados, ya que la tabla se cierra, dando mayor confianza. El uso de CommitRetaining siempre deja la tabla abierta y de ahi que vengan los problemas y pienso que fue creado para mantener una semejanza con las tablas que se mantienen abiertas y los programadores al migrar no sientieran un cambio brusco. La filosofía del trabajo con sql es que cuando actualizas, la tabla guarda los cambios y se cierra.
Recomendación: para que te adaptes al estilo de los sql, utiliza commit y excepcionalmente algun commitretaining si lo amerita el caso.

Neftali [Germán.Estévez] 26-06-2006 09:48:09

No se trata de que sea bueno o malo, se trata de lo que necesites hacer.
Las transacciones se deben utilizar para realizar de forma atómica una serie de operaciones que "o se realizan todas o ninguna". Cuando acabes un grupo de operaciones debes hacer un commit, para "finalizar ese bloque". CommitRetainning mantiene la misma transacción, así que si deseas acabar un bloque de operaciones entiendo que no deberías utilizarlo.

Luzma 27-06-2006 01:58:58

Gracias
 
Gracias nemesio, Neftali y a todos. Me han ayudado mucho.

Seguiré estudiando esto...


La franja horaria es GMT +2. Ahora son las 06:52:32.

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