[firebase-br] Problemas Performance
eduardo
eduardo em icontroller.com.br
Qui Nov 4 01:46:25 -03 2004
Algumas hipóteses para investigar
- Existem BLOBs retornando na Query ? - Se positivo, e se forem
Graphics, e se vc tiver habilitado fetch Blobs, isso pode estar
sobrecarregando;
- '%A%' vai retornar qualquer coisa que tenha 'A', assim, você pode
estar retornando quase todos os 60.000 registros e isso fica tudo na
memória, exaurindo os recursos do sistema. Recomenda-se que não deixemos
o usuário buscar mais de 500 a 1000 registros, mesmo porque, escolher 1
em 1000 não é muito confortável, imagine em 6000.
- Experimente usar um PacketRecords de 100 e verificar se há melhora na
performance. Se houver é porque vc deve realmente estar trazendo muitos
registros em um DataSet na memória
- em bancos de teste, se deletamos e incluimos repetidamente, podemos
causar excesso de lixo no BD e prejudicar a performance. Um
backup/Restore pode resolver.
- Procure reavaliar o *. Muitas vezes campos chave e chaves estrangeiras
não interessam ao usuário
- Outras coisas a verificar dizem respeito a Sistema Operacional e
Discos, como estado de desfragmentação do volume, quantidade de espaço
em disco, outros aplicativos concorrentes utilizando uma porçao grande
da CPU, etc
Bem, a quase 2 da manhã, é o que eu consigo lembrar, talvez algum outro
amigo possa acrescentar mais alguma coisa.
Espero ter ajudado
[ ]'s Eduardo
Adilson B. Cápua Jr. wrote:
>PessoALL,
>
> No meu projeto envolvendo Firebird 1.5 + DBExpress + Delphi 7, me
>daparei
>com um problema que não faço a mínima idéia do motivo. Para testar a
>aplicação,
>criei uma base de dados com aproximadamente 60.000 mil registros (clientes).
>
>Numa tela de consulta, permito que o meu usuário digite as iniciais do
>cliente e então
>faço uma busca usando um select mais ou menos assim:
>
>SELECT * FROM CLIENTES WHERE NOME_CLIENTE LIKE '%' + Edit1.Text +
> ' ORDER BY NOME_CLIENTE
>
>Nota: Preciso usar o * mesmo, pois todos os campos do cadastro são
>necessários
>na consulta...
>
> Até ontem (dia 02/11), caso o usuário digitasse por exemplo a letra "A"
>e solicitasse
>a pesquisa, o banco quase que imediatamente retornava os 6.000 clientes que
>começam
>com a letra "A"... Não sei por que o motivo, esse tempo passou para quase 10
>ou 15
>segundos... Se eu especificar mais o nome, como "ADILSON" por exemplo, o
>retorno
>é quase que imediato... Já quando a query retorna muitos registros, chega a
>demorar
>bastante...
>
> Alguém tem alguma idéia do porque disso???
>
>Qualquer ajuda é bem vinda...
>
>
>[]'s
>
>
>---
>Outgoing mail is certified Virus Free.
>Checked by AVG anti-virus system (http://www.grisoft.com).
>Version: 6.0.788 / Virus Database: 533 - Release Date: 01/11/2004
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
>
>
Mais detalhes sobre a lista de discussão lista