[firebase-br] Otimização de Transação

Eduardo Jedliczka edujed em gmail.com
Ter Dez 1 13:33:09 -03 2009


Sandro, você está descrevendo o funcionamento de outro banco de dados.

o firebird tem comportamento diferente...

ele trabalha com versioning, onde existem várias páginas com os mesmos
dados, porém em versão diferente. quando uma nova versão é gerada, e o
banco consegue executar o sweep (que "geralmente" ocorre de forma
independente) as páginas de versão antiga (e por consequencias
desnecessárias) são marcadas para reutilização futura.

neste caso o commit é ligeiramente mais rápido que o rollback por causa
da fila de lock, e o controle das transações concorrentes.

claro que omiti muitos detalhes, mas a idéia básica é esta.

abraço

Eduardo

Em Seg, 2009-11-30 às 16:42 -0300, Sandro Souza escreveu:

> Bom dia/tarde Darlan.
> 
> Grande Darlan, eu posso estar redondamente errado, mas acredito que o commit
> seja mais custoso.
> Se uma transação foi iniciada e operações começaram a ser executadas dentro
> dessa transação, no mínimo, alguma área temporária foi reservada para os
> dados dessa nova transação (resultado dos SELECTs, registros alterados,
> etc...).
> No caso de um rollback, acredito que apenas seja liberada essa área
> temporária (uma ou mais páginas alocadas temporariamente).
> No caso de um commit, a brincadeira é maior, porque envolve a verificação de
> cada uma das constraints definidas no banco, confrontando com os dados
> atuais e válidos do mesmo, e estando tudo válido, ainda tem que alterar
> algumas estruturas internas (índices, registros, etc...) para que sejam
> utilizados os novos dados da transação efetivada, como sendo os novos dados
> "oficialmente" válidos do banco.
> Sendo assim, acredito que um commit é mais custoso que um rollback, mas como
> já foi dito em um post anterior, se foram efetuadas apenas consultas, sem
> qualquer tipo de alteração, não haveria diferença alguma.
> Se eu estiver enganado, por favor queiram esclarecer.
> Acho que esses assuntos são muito interessantes, e dizem respeito à
> performance dos nossos sistemas.
> 
> 2009/11/30 Darlan Hendges <darlan em agafarma.com.br>
> 
> > Boa tarde a todos,
> >
> > Tenho uma dúvida em relação a performance.
> >
> > O que é mais rápido o Commit ou Rollback? E porque?
> >
> >
> > Abraço.....
> >
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista