[firebase-br] Firebird Lento + de 2000 transacoes/minuto

william almeida wilchaia.listas em gmail.com
Sex Set 3 16:13:14 -03 2010


Magno,

Talvez eu tenha me expressado mal: eu faco todo on procedimento de abrir a
transacao e dar o commit ou rollback conforme o resultado.  Eu disse que
fecho a conexao é porque como distribuo os dados nos BDs definitivos, e eles
sao varios, eunao deixo a conexao aberta com todos eles.

Na verdade eu tenho um SQLConnection dentro de uma thread, a qual abre um BD
por vez. Pode-se dizer a grosso modo que eu faco uma serializacao da
gravacao dos dados

Um abraco

2010/9/3 Magno System <magnosysteminformatica em gmail.com>

> Você disse abre e fecha a conexão. O caso não seria de um STARTTRANSACTION
> e depois COMMIT em vez de abrir e fechar a conexão ???
>
>
> ----- Original Message ----- From: "william almeida" <
> wilchaia.listas em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, September 03, 2010 12:37 PM
> Subject: [firebase-br] Firebird Lento + de 2000 transacoes/minuto
>
>
>
>  Oi Galera da lista,
>
>  Estou com uma aplicacao que roda em Delphi 7/dbexpress/Firebird
> 2.0.6/windows server 2008 server e estou experimentando muito atraso nas
> gravacoes.
>
>  O cenario é o seguinte:
>
>  - tenho uma aplicacao que é multithread
>  - uma thread gerencia o recebimento de uma media de 500 pacotes de dados a
> cada minuto, sendo que cada pacote desses gera um registro armazenados em
> um
> BD temporario
>  - uma outra thread fica verificando esse BD temporario e os distribui em
> outros BDs definitivos
>  - esses BDs definitivos sao consultados via Web em PHP
>
>  Pelo os meus calculoss o  FB lida com mais de 2000  transacoes/minuto, ja
> que existem outras verificacoes de rotina e a consulta via web.
>
> Tomei os seguintes cuidados:
>  - todos os BDs estao com o sweep desligado e com forced writes ligado
>  - tenho uma conexao para cada thread no D7(dizem que com o FB 2.5 nao vai
> mais precisar disso)
>  - faco o uso explicito de transacoes no D7 e no PHP
>  - o sistema abre  conexao com um certo BD definitivo grava os dados e
> depois fecha a conexao
>
>  O que  tem acontecido é uma lentidao gradual das gravacoes. O que se
> constata é que a diferenca entre a Oldest transaction e a Next transaction
> aumenta o que obviamente detona a performance do FB. Ja verifiquei todos os
> codigos, em Delphi e PHP que faco uso para assegurar que as transacoes sao
> usadas explicitamente mas mesmo assim as transacoes comecam a fica
> pendentes. Tem horas que nem com o sweep manual da jeito. Tem q fazer um
> backup/restore. Ai com o tempo a diferenca OT/NT comeca a crescer de novo.
>
> As bases estao crescendo. Term algumas com 3GB e alguns milhoes de
> registros. Achei que isso nao seria problema para o FB. Alguem ai tem
> alguma
> sugestao ou sabem se o D7 tem problemas para lidar com tanta transacao? Vou
> migrar para o 2010 mas voces sabem que migracao de sistema nao é assim tao
> simples e rapido e estou com esse pepino para resolver.
>
> Um abraco
>
>
> --
> William C Chaia de Almeida
> Analista de Sistemas
>
> Preservar a natureza não é opção, é evoluçã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
>



-- 
William C Chaia de Almeida
Analista de Sistemas

Preservar a natureza não é opção, é evolução.



Mais detalhes sobre a lista de discussão lista