[firebase-br] IB 6 super server não usa memória eficientemente?
Paulo
paulo em manfra.com.br
Ter Ago 19 09:13:10 -03 2008
Obrigado pelas dicas, Valdir.
Só uma dúvida: como você faz a importação dos dados para esta no base
com a estrutura de certa forma diferente?
Valdir Marcos escreveu em 18/08/2008 19:30:
> Paulo, apenas uma sugestão...
>
> Quando eu pego esse tipo de situação, eu extraio o metadado do banco
> velho inteiro e reconstruo na nova versão do Firebird mudando pequenos
> detalhes, como chaves primárias e estrangeiras, índices e charsets.
> Todos esses elementos são transparentes para a aplicação, todavia já
> de início dão aquela lentanda na performance da aplicação abrindo
> espaço e credibilidade para fazermos o trabalho pesado de construirmos
> um banco de dados decente.
>
> Um abraço,
>
> Valdir
>
>
> Em 18/08/08, Paulo<paulo em manfra.com.br> escreveu:
>
>> Boa tarde, Valdir.
>>
>> É o que eu pretendo fazer! Mas é um sistema legado e de uma codificação
>> horrível! Coisas que só o RAD faz pra você! Um dia chego até a versão
>> mais atual do Firebird (ou quem sabe mudo de SGBD :), mas tenho que ir
>> com calma!
>>
>>
>> Valdir Marcos escreveu em 18/08/2008 14:54:
>>
>>
>>> Paulo, porque você não migra seus dados para o Firebird 2.1.1? Você
>>>
>> > verá uma diferença absurda de performance em relação Interbase 6, sem
>> > falar na enormidade de melhorias e recursos que foram acrescentados de
>> > lá para cá.
>> >
>> > Um abraço,
>> >
>> > Valdir
>> >
>> >
>> > Em 18/08/08, Valdir Marcos<valdir.marcos em ig.com.br> escreveu:
>> >
>> >> Boa tarde.
>> >>
>> >> No Firebird 2.1, você poderia derrubar os comandos de uma conexão, mas
>> >> não a conexão em si (o que será possível no FB 2.5). Todavia, se você
>> >> derrubar todos os comandos de uma conexão, essa conexão pára de lhe
>> >> dar trabalho... he he he
>> >>
>> >> -- Descubra qual conexão lhe interessa:
>> >> Select * From Mon$Attachments;
>> >>
>> >> -- Apaga todos os comandos dessa conexão:
>> >> Delete From MON$STATEMENTS
>> >> Where Mon$Attachment_ID = 9999;
>> >> Commit;
>> >>
>> >> -- Verifica se sobrou algum comando dessa conexão:
>> >> Select * From MON$STATEMENTS;
>> >>
>> >> -- Após você apagar o comando, o usuário dessa conexão receberá uma
>> >> mensagem de erro instantaneamente... he he he
>> >>
>> >> Um abraço,
>> >>
>> >> Valdir
>> >>
>> >>
>> >> Em 18/08/08, Douglas Tosi<douglasht em gmail.com> escreveu:
>> >>
>> >>> 2008/8/18 Paulo <paulo em manfra.com.br>:
>> >>>
>> >>>> Douglas Tosi escreveu em 18/08/2008 11:40:
>> >>>> O parâmetro DATABASE_CACHE_PAGES está em 3500. Já experimentei aumentar
>> >>>> este valor, mas houve um pequeno aumento no uso da memória apenas.
>> >>>> Os problemas que eu tenho são quando alguma conexão faz um uso mais
>> >>>> agressivo do banco. Todos os outros clientes sofrem com isso.
>> >>>>
>> >>> Não acredito que aumentar o cache vai te ajudar nisso. 300MB é um banco pequeno.
>> >>> Você poderia colocar ele inteiro no cache e ainda assim teria
>> >>> problemas de performance.
>> >>> Aumentar a memória só te ajudaria se você tiver problemas de excesso
>> >>> de I/O de leitura.
>> >>> E ainda assim, cuidado: O IB6 não é muito esperto gerenciando caches
>> >>> muito grandes.
>> >>>
>> >>>
>> >>>> Aliás, este é um outro problema que venho enfrentando: não consigo cancelar o
>> >>>> processamento de algumas queries, nem matar conexões! Às vezes preciso
>> >>>> rodar alguma query mais pesada no servidor de produção (mesmo não sendo
>> >>>> o banco de dados de produção) e, se ela demorar demais, todos os outros
>> >>>> clientes ficam intrabalháveis neste período. Há alguma maneira de matar
>> >>>> um cliente no super server?
>> >>>>
>> >>> Não. Só a partir do 2.5.
>> >>> No 2.1 tem como cancelar uma query.
>> >>> Mas matar uma conexão nas versões anteriores ao 2.0, só no Classic.
>> >>> E só existe classic para windows a partir do firebird 1.5, eu acho.
>> >>> (Confirme isso)
>> >>>
>> >>>
>> >>>> Unindo o pouco uso da memória e o problema com o excesso de
>> >>>> processamento de alguns clientes, pensei em utilizar o classic server,
>> >>>> porque poderia matar a conexão mal-criada facilmente.
>> >>>>
>> >>> As versões mais novas do Firebird se comportam um pouco melhor na
>> >>> distribuição de carga entre os clientes. Um cliente mal-criado não vai
>> >>> causar tanto impacto nos outros.
>> >>>
>> >>> --
>> >>> Douglas Tosi
>> >>> www.sinatica.com
>> >>>
>> >>> ______________________________________________
>> >>> 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