[firebase-br] Transacoes no DBExpress (Conclusao)
Paulo Geloramo
paulogeloramo em terra.com.br
Qui Maio 19 19:01:07 -03 2005
Para verificar se o DBExpress com Firebird 1.5.2 mantem
transação aberta por muito tempo fiz o seguinte teste:
Diversos select
Emiti a estatistica do banco
Diversos insert e ApplyUpdates(0)
Emiti a estatistica do banco
Diversos Update ApplyUpdates(0)
Emiti a estatistica do banco
Diversos Delete ApplyUpdates(0)
Emiti a estatistica do banco
Verificando na estatistica do banco:
Oldest transaction
Oldest active
Oldest snapshot
Next transaction
Não mantem transações aberta por muito tempo,
as transações são fechadas, mas não entendi
qual o critério usado para fechar as transações,
pois as transações não são fechadas a cada
ApplyUpdates, mas por algum outro critério,
aleatoriamente, time out, block, etc.
[]s
Paulo Geloramo
-----Mensagem Original-----
De: "Pha-Lista" <lista em pha.com.br>
Para: "FireBase" <lista em firebase.com.br>
Enviada em: quinta-feira, 19 de maio de 2005 14:23
Assunto: Re: [firebase-br] Transacoes no DBExpress (Conclusao)
>> Olá PHA!
>>
>> Cara, deixa eu ver se entendi:
>>
>> Quando agente faz alguma operação (select, insert, update, delete) no DBX
>> sem iniciar uma transação, ele cria uma automaticamente e mantém ela, a
>> transacao, como XXXRetaining?
>
> Sim, no IB/FB voce precisa de uma transacao aberta por isso ele faz isso,
> mais isso nao e um problema do DBExpress, muitos outro componentes tem
> este problema o IBX e um deles, o unico componente que conheco que
> controla e fecha as transacoes corretamentes e o IBO, a unica diferenca do
> DBExpress para o IBX e que nele voce tem um componete de transacao lidado
> ao IBDataSet, se construir um componente de transacao para o DBExpress ele
> fica igual.
>
>>
>> No caso do uso do DBXPress com ClienteDataSet eu também encontro este
>> tipo
>> de erro (no ApplyUpdates) ou o DataSetProvider controla direitinho as
>> transações?
>
> No ApplyUpdates funciona direitinho ele abre e fecha a transacao, o unico
> problema e que quando voce abriu o ClientDataSet o DBExpress inicou uma
> transacao e esta vai ficar aberta (pelo menos nos meus teste foi assim)
>
>>
>> Se o Commit só é dado quando fazemos um controle manual das transações,
>> posso considerar, então, manter a propriedade KeepConnection do
>> SQLConnection setada como false?
>
> E uma opcao, so tem uma desvantagem, quando uma conexao e fechada todos as
> Querys preparadas sao liberadas, mais acho que funcionaria bem.
>
> A questao e a seguinte, esta transacao que o DBExpress inicia para fazer
> as leituras, atrapalha a peformance do FB em Quanto? Como nao tenho um
> aplicativo em producao usando o DbExpress com FB nao posso dizer.
>
> No IBX o problema e maior pois ele utiliza a mesma transacao para os
> updates e quando fechamos a mesma ele tambem fecha as tabelas, claro que
> ele pode funcionar igual ao DBExpress usando o TClientDataSet, eu acho que
> o mesmo se aplica ao MDO apesar de nao conhece-lo.
>
> PHA
> Nova Odessa / SP - Brazil
> -----Mensagem original-----
> From: "Francisco Thiago" jeandeadlucky em yahoo.com.br
> Date: Thu, 19 May 2005 14:22:39 -0300
> To: "FireBase" lista em firebase.com.br
> Subject: Re: [firebase-br] Transacoes no DBExpress (Conclusao)
>
>>
>>
>> Obrigado
>>
>> Francisco Thiago de Almeida
>> Enter&Plug Informática
>> Divisão: Desenvolvimento e Banco de dados
>> MSN: thiago em enterplug.com.br
>> Skype: enterplug_thiago
>
>
>
>
--------------------------------------------------------------------------------
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista