Sistema lento, conexao abre toda hora

12 respostas
B

Ola, gostaria de saber como devo fazer para melhorar o desempenho do sistema:

Exemplo: estou desenvolvendo um sistema de busca de clientes e uma certa parte do sistema cada caractere que a pessoa digita no Jtextfield ele faz a busca no banco e toda vez ele conecta ao banco e desconecta (mysql).

Estou usando DAO, gostaria de saber se teria como ficar conectado para melhorar a performance.

Se não ajudou muito o que perguntei, posso postar meu codigo.

Desde ja obrigado

12 Respostas

JonathanSSantos

posta seu codigo para dar uma olhada! :smiley:

PS: Não precisa mostra nao eakpoeakpoea

peczenyj

provavelmente vc precisa de um pool de conexões e/ou cache de dados. pesquise sobre isso :wink:

felipedamiani

Cria um singleton para pegar a conexão!

xjunior

Concordo com nosso amigo acima, cria um singleton para a conexão e faz um cache de dados.

Alexandre_Saudate

Concordo. Uma solução boa nesse sentido seria usar Hibernate com C3P0 e ehCache. (Te daria mais trabalho, mas acredito que valeria a pena).

Caso você não tenha essa possibilidade, implemente um pool de conexões “na mão” (tá bom, vai, não é difícil).

ViniGodoy

Essa é, na verdade, uma solução péssima. Existem várias razões para não manter conexões abertas num singleton, entre elas:

a) Reduz paralelismo (você terá problemas com código multi-thread);

b) A conexão poderá fechar subitamente, quando ficar ociosa por muito tempo;

c) Você pode ocupar um recurso de banco desnecessariamente;

A melhor solução já foi comentada. Utilize um pool de conexões. É mais profissional, mais eficiente e não é difícil.

R

betocamargo:
Ola, gostaria de saber como devo fazer para melhorar o desempenho do sistema:

Exemplo: estou desenvolvendo um sistema de busca de clientes e uma certa parte do sistema cada caractere que a pessoa digita no Jtextfield ele faz a busca no banco e toda vez ele conecta ao banco e desconecta (mysql).

Estou usando DAO, gostaria de saber se teria como ficar conectado para melhorar a performance.

Se não ajudou muito o que perguntei, posso postar meu codigo.

Desde ja obrigado

E se você carregar toda lista primeiro, e depois para fazer a busca a cada caracter digitado você manipular essa lista?

xjunior

bom analisando os comentários acima, realmente é melhor fazer um pool de conexões, se for usar um pool de conexões, use a biblioteca Jakarta Commons-DBCP.

Alexandre_Saudate

RafaelViana:
betocamargo:
Ola, gostaria de saber como devo fazer para melhorar o desempenho do sistema:

Exemplo: estou desenvolvendo um sistema de busca de clientes e uma certa parte do sistema cada caractere que a pessoa digita no Jtextfield ele faz a busca no banco e toda vez ele conecta ao banco e desconecta (mysql).

Estou usando DAO, gostaria de saber se teria como ficar conectado para melhorar a performance.

Se não ajudou muito o que perguntei, posso postar meu codigo.

Desde ja obrigado

E se você carregar toda lista primeiro, e depois para fazer a busca a cada caracter digitado você manipular essa lista?

Nesse caso, ele terá um cache de dados! ^^

xjunior

Olha tmbém para o pool de conexões a JNDI.

Alexandre_Saudate

Se puder.

B

Valeu pessoal pelas dicas, agora ja sei por onde resolver o problema.

Abraço

Criado 16 de dezembro de 2009
Ultima resposta 16 de dez. de 2009
Respostas 12
Participantes 8