[firebase-br] RES: Sugestão para desempenho no Firebird

Artur Anjos listas em arturanjos.com
Qua Abr 2 16:58:10 -03 2008


Regra: TUDO no Firebird corre dentro de uma transação. A única excepção 
são os generators.
Se você mentalizar essa regra, metade dos seus problemas estão resolvidos.

Para um select, abre a transacção, faz o select, fecha a transação, de 
preferencia com um commit.

Se é necessário ou não dar o commit, depende muito da sua aplicação. Mas 
uma aplicação "bem comportada" deixa a transação aberta o menor tempo 
possível.

No Firebird, você controla se alguma transação está aberta pela 
diferença entre a "oldest transaction"/"oldest active" transaction e a 
next transaction.
Se o valor da "next continuar a subir no tempo, e as outras não mexerem, 
pode ter a certeza  que uma das suas transações está lá aberta esperando 
um commit ou um roll back.

Em produção, é comum gerar ficheiros de log de tanto  em tanto tempo (eu 
uso de hora a hora) para controlar este valor.
Em linux (e mesmo em windows) você cria um log em dois tempos, e pode 
ser bem util para analisar queda de performance.

Queda de performance ao longo do dia? Você tem transações abertas tempo 
demais.

Artur

Denis (listas gmail) wrote:
> Um select deixa uma transação em aberto?
> É realmente necessário dar um Commit ou Rollback no final de cada Select?
>
>
> [ ]'s
> ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~
> Denis da Silva Guerra
> São José do Vale do Rio Preto - RJ
> denisdsguerra em gmail.com
> ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~
>
>
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
> nome de Alexandre Sousa
> Enviada em: quarta-feira, 2 de abril de 2008 13:12
> Para: FireBase
> Assunto: Re: [firebase-br] Sugestão para desempenho no Firebird
>
> Uma sugestão fica por conta do forced writes.
>
> Se as transações são muito longas e/ou existem muitas operações na mesma 
> transação e o banco está com forced writes ativado, o desempenho do sistema 
> cai drasticamente. Experimentem desativar o forced writes.
>
> Se melhorar, revisem TODAS as transações, inclusive aqueles selects 
> pequenos.
>
> Tentem comitar ou dar rollback em qualquer operação, inclusive selects.
>
> Espero ter ajudado
>
> Alexandre Sousa
>
>
> ----- Original Message ----- 
> From: "Marcelo Silva" <marcvan em ig.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, April 02, 2008 12:28 PM
> Subject: Re: [firebase-br]Sugestão para desempenho no Firebird
>
>
> Tambem gostaria de saber dicas de melhorar a performance do FB
>
> Meu server é um Xeon 1.8
> Windows Server 2000
> HD 15,GB x 2 ( espelho )
> 2GB de memoria
>
> A base de dados esta com 900MB tabelas maximas com 1.400.000 registros
>
> É uma máquina propria pra servidor com Placa INTEL DUAL
>
> Mesmo assim tem hora que o sistema fica muito lento
>
> Estava com Page size 4096
> Ja coloquei o Page para 2048 pra ver se mudava alguma coisa
> Agora tambem coloquei pra 8192
>
> Mas mesmo assim ele persiste em usar 50 a 60 % do processador nas pesquisas
>
> Sei que é comum dar uns picos de vez em quando... mas é que vemos no dia a
> dia que alguma coisa nao esta normal
>
> Se alguem puder dar umas dicas de bons modos com o FB seria bem vindo :)
>
> Uma coisa ruim que já me passou pela cabeça é migrar pro MySQL pra ver se
> melhora... mas eu gosto tanto do FB, tudo que faço é com ele e sempre
> recomendo :)
> Mas a necessidade fala mais forte né :(
>
> Marcelo Silva
>
>
>
>
> ----- Original Message ----- 
> From: "Fellipe Henrique" <fellipe.h em uol.com.br>
> To: <lista em firebase.com.br>
> Sent: Wednesday, April 02, 2008 11:15 AM
> Subject: Sugestão para desempenho no Firebird
>
>
>   
>> Olá amigos, estou tendo um problema com o Firebird 2.0.3 em um cliente. O
>> programa de uma hora pra outra simplesmente fica lento demais.. o que
>> antes fazia em torno de 5 segundos, demora mais de 20 minutos. Já troquei
>> o banco de dados, e o servidor de máquina, pensando ser a máquina, e o
>> rapaz da rede teima em dizer que não há problemas de rede.
>>
>> Já vasculhei o sistema, e não há problemas de transação, mesmo porque, que
>> se eu no computador que originou a transação, eu já até saí do sistema, e
>> continua tudo lento, aí todas as máquinas ficam lentas... ou seja, se
>> fosse transação, ao finalizar o sistema, perde-se todas as transações
>> correto?
>>
>> O banco de dados está com pagesize em 8192, com Buffer (Paginas = 2048
>> KB=16384), Sweep Interval = 20000, Forced Writes = True, Dialect=3.
>>
>> Servidor instalado como SuperServer.
>>
>> O que me aconselham a modificar, para testar isso. A questão é que entra
>> no máximo 4 usuários, pesmem!...
>>
>> Desde já agradeço.
>>
>> Fellipe H.
>>
>>
>>
>>
>>     
>
>
> ----------------------------------------------------------------------------
> ----
>
>
> ______________________________________________
> 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 
>
>
> ______________________________________________
> 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