[firebase-br] LOCATE super lento

Carlos Wilson cwfsa1 em gmail.com
Ter Abr 7 08:19:42 -03 2009


Aproveitando o gancho como eu configuro o zebedee para compactar os 
dados? Eu acho que eu não configurei certo por que tanto faz eu colocar 
pra comunicar pelo zebedee como no ip direto que ele tem o mesmo 
desempenho, parece que com o ip direto é até um pouquinho (mais bem 
pouquinho mesmo) menos lento.

Obrigado.

Carlos Wilson

Eduardo Jedliczka escreveu:
> Pelo que eu entendi, você "publicou" a porta do banco em algum IP e está
> acessando via Internet, correto ?
>
> Se for isto, saiba que o protocolo do firebird é muito pesado para ser
> utilizado via web. principalmente porque o Locate força recarregar uma
> boa parte (em alguns casos toda a tabela) dos dados da tabela. 
>
> Como o Firebird é meio tagarela (especialmente nas versões anteriores à
> 2.1.0), se cada registro gastar 500 bytes - com o protocolo embutido -
> você está fazendo um upload e download de 2MB - isto sem contar Blobs.
> Mas é bem provável que você esteja usando bem mais de 500 bytes por
> linha.
>
> Como sugestão troque os DBLookupCombo por uma janela de procura que
> traga no máximo 200 registros, assim seu sistema ficará mais leve. 
>
> Outra idéia seria adotar algum compressor/tunelador de TCP/IP como o
> ZeBeDee.
>
> Ainda dá para criar uma cache local de algumas tabelas (e através de um
> generator controlar a versão dos dados e carregar somente o que foi
> mudado) usadas no DbComboBox (o que vai gerar um belo ganho) - desde que
> sejam tabelas que recebam poucas alterações, como cadastro de
> municípios, etc.
>
> Sucesso
>
> Eduardo Jedliczka
>
> Em Seg, 2009-04-06 às 23:27 +0000, Mário Reis escreveu:
>
>   
>> Cantú,
>>
>>   Preciso de busca rápida e estava tendando o LOCATE p/ uma PK_ID
>> mas, nem assim. Há alguma forma de optimizar.
>>   Uso D7+MDO e. o m/ficheiro mestre tem "agarradas" por 8 auxiliares
>> que "alimentam" os DbLookUpCombos etc...
>>   Faço um 1.º Locate DsSocios(tabela solta i.e. sem tabelas aux agarradas)
>> que é instantâneo, para sacar o valor da Chave e um 2.º pela PK_ID 
>> tipo: DsPessoas.Locate('PESSOA_ID',DsSocios.FieldByName('SOCIOS_ID').AsInteger,
>> []); aqui, demmora uma eternidade (na rede local é rápido) mas, remotamente
>> são cerca de 1:20m num ficheiro com 4000 registos.
>>  Tudo mais é muito rápido update e insert mas posicionar num registo é um 
>> drama P/favor alguma dica?
>> Obrigado
>> Mário Reis 
>>
>>
>> ______________________________________________
>> 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