Aumentar o desempenho do Interbase...

Firebird

02/10/2003

Olá amigos.
antes de mais nada gostaria de dizer que fiz uma pesquisa no fórum e não encontrei nada que me satisfazesse.
É o seguinte:
Minhas aplicações cliente/servidor estão muito lentas. Tanto para iniciar a aplicação, quanto para fazer consultas.
Andei verificando minha rede e tudo está normalizado. Tenho certeza que o problema está no interbase.
Mudei o Interbase para Síncrono, pois pensei que assim traria uma performance maior, mas nada resolveu.
Fiz um Backup>Restore mas acho que configurei errado, pois continua a mesma coisa. Já pensando nisso, estrtuturei meu banco da melhor maneira possível, buscando ajuda em revistas e artigos. Fiz testes com o PLAN e percebi que o redimento caiu cerca de 15¬.
Existe algum utilitário para resolver meu problema... ou senão, como devo configura-lo direito. Será que existe algum macete ou coisa parecida? Quem puder me ajudar ficarei muito grato.

Muito obrigado.


Anarchybra

Anarchybra

Curtidas 0

Respostas

Afarias

Afarias

02/10/2003

|antes de mais nada gostaria de dizer que fiz uma pesquisa no fórum e
|não encontrei nada que me satisfazesse.

huummm... me lembro de ja ter visto e postado aqui e no fórum Delphi *diversas* mensagens sobre o assunto!


|Andei verificando minha rede e tudo está normalizado. Tenho certeza
|que o problema está no interbase.

Tem certeza mesmo?? O problema não está na SUA aplicação??


|Mudei o Interbase para Síncrono, pois pensei que assim traria uma
|performance maior, mas nada resolveu.

Pelo contrário, no modo de escrita síncrona (forced writes) há queda de performance.


|Fiz um Backup>Restore mas acho que configurei errado, pois continua a
|mesma coisa.

Isto ajuda depois de muito tempo de uso da base de dados -- mas não é solução para problemas ´crônicos´ de performance


|Existe algum utilitário para resolver meu problema... ou senão, como
|devo configura-lo direito.

se seu problema está nas Querys (SELECTS) q vc precisa -- use o IBPlanalyser (ou outra ferramenta do tipo) para poder otimizar suas consultas.


|Será que existe algum macete ou coisa parecida? Quem puder me
|ajudar ficarei muito grato.

Existem ´macetes´ para lidar com o Interbase -- e existem técnicas ´apropriedas´ para construção de aplicações Cliente/Servidor.

alguns dos ´macetes´ vc pode ver nos artigos (já traduzidos)::

http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=126
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=242

se vc vem de programação com bancos baseados em arquivos (como xBase ou Paradox) então veja também::

http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=128


T+


GOSTEI 0
Anarchybra

Anarchybra

02/10/2003

Muito obrigado mais uma vez Afarias. Vou dar uma olhada nos artigos e ver se resolvo meu problema.


GOSTEI 0
Anarchybra

Anarchybra

02/10/2003

Afarias,
li os artigos que me indicou... digamos que meu banco está 80¬ de acordo com o descrito no artigo. Agora estou com uma dúvida.
Meu servidor é Windows 2000 e as estações são 2000 e 98. O máximo que eu tenho são três usuários usando um determinado sistema por vez. Meu banco é consideravelmente pequeno (não mais que 30 tabelas). O tamanho do BD é de aproximadamente 200 MB. O tamanho das páginas são 4096 e cache 10.000. Seria melhor eu deixá-lo em Forced Write Off.

Obs.: Faço 4 backups diários.


GOSTEI 0
Afarias

Afarias

02/10/2003

|li os artigos que me indicou... digamos que meu banco está 80¬ de
|acordo com o descrito no artigo. Agora estou com uma dúvida.

Legal!! :D


|Meu servidor é Windows 2000 e as estações são 2000 e 98. {...}

bom... usar Forced Writes serve apenas para prevenir corrupção no banco de dados. Se seu servidor tiver um no-break então não há necessidade de usar -- se não, ai vc tem q avaliar o risco de quedas de energia, travamentos do servidor e bakups q vc mantém (4 backups diários para mim é suficiente para não usar Forced Writes)

A performance com Forced Writes OFF é consideravelmente melhor!

Como não tenho detalhes da sua aplicação, não dá pra falar muito. Vc disse que está segindo bem as dicas dos artigos o q siginifica q o problema pode realmente não residir na sua aplicação (mas é bom ver os outros 20¬ :wink: )

-- entretanto, um banco de dados com 30 tabelas e por volta de 200MB é realmente pequeno -- costumo trabalhar com o mesmo tamanho de página (4096) e, para bancos assim, com um cache (page buffers) pequeno (o padrão do IB) -- o que não tem me dado nunhum problema de performance!

Veja exatamente onde estão os pontos de baixa performance. Se uma consulta está lenta, analise-a com uma ferramenta como o IBPlanalyser e tente otimizá-la.

Veja se seu servidor (Windows2000) está bem para sua aplicação -- outros serviços de rede como Arquivos e Impressão custam caro a rede e ao servidor de banco de dados se estiverem no mesmo servidor!! -- para algo pequeno como o seu isso não deveria fazer tanta diferença, mas vale se visto.

Procure fazer um estudo minucioso e chegar fundo nos pontos realmente problemáticos... assim, será mais fácil tentar resolver -- e, em não resolvendo, vc terá mais informação para postar aqui e os usuários do fórum poderão ajudar melhor!


boa sorte!
T+


GOSTEI 0
Alexandre7

Alexandre7

02/10/2003

Também estou com problemas de performance em várias consultas que efetuo no Interbase através de SQL.
Encontrei hoje uma apostila interessante que possui um tópico sobre Construção de Comandos SQL com Boa Performance no endereço:

http://www.active.br2.net/arquivos/apostilas/bd/Apostila_BD_e_SQL.zip

Talvez possa esclarecer algo, pelo menos para mim que ainda sou um pouco novato em SQL acho que vai auxiliar um pouco.

Também irei ler os artigos sugeridos pelo Farias.


GOSTEI 0
POSTAR