[firebase-br] LOCATE super lento

Eduardo Jedliczka jedyfb em gmail.com
Seg Abr 6 21:48:10 -03 2009


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



Mais detalhes sobre a lista de discussão lista