Performance Java + PostgreSQL

9 respostas
adriano_si

Prezados, estamos começando a querer implementar Java aqui na empresa… até aí tudo lindo e maravilhoso. O problema é que semana passada durante minha apresentação sobre o que ficou decidido na reunião com a diretoria, uma colega do banco de dados levantou uma questão que me deixou desarmado e o máximo que pude dizer pra ela foi “Não sei, pois realmente nunca fiz essa integração, mas tbm unca havia uvido falar sobre isso…”

Ela perguntou se também iríamos mudar o BD, pois ao usar Java + Postgre a performance era bastante afetada…

Nossa… fiquei realmente chocado e aí que caiu a ficha que nunca fiz essa integração e nem conheci ninguém que já fez em ambientes corporativos… Sempre usei MySQL na academia e já parti pro Oracle no trampo…

Agora fiquei com a pulga atrás da orelha… a Informação procede ?? alguém que trabalhe com Postgre em ambiente Corporativo, pode dar esse retorno aí pra gente… Pois pelo que senti da chefia, mudar o banco não entra nem em questão aqui…

Abraços :wink:

9 Respostas

G

Performance do Java com pgsql é excelente. Uma das melhores até agora.

Possuo uma aplicação comercial que roda em pgsql, EJB com JPA. A aplicação é muito grande e complexa, executa-se diariamente 3 milhões de consultas ao pgsql, e tudo funciona super bem.

Como a aplicação roda em clusters (32 instâncias da VM com 1G de memoria cada) não posso acessar o filesystem, então até mesmo arquivos binários como imagens e afins são gravados no banco de dados. Algumas tabelas possuem 1.3G de dados.

Aliás o Java possui abstração quanto ao banco de dados. Tudo fica a cargo do driver JDBC, que normalmente é disponibilizado pelos próprios fabricantes e/ou comunidade.

No caso do comentário desse seu colega, pode ser algum problema no banco, pool mal dimensionado, banco sem otimização… enfim, não creio ser nada do Java, visto minhas experiências com vários bancos em nenhum tive problemas entre DB/Java.

Quaisquer dúvidas, avise-nos.

Abraços

adriano_si

garcia-jj:
Performance do Java com pgsql é excelente. Uma das melhores até agora.

Possuo uma aplicação comercial que roda em pgsql, EJB com JPA. A aplicação é muito grande e complexa, executa-se diariamente 3 milhões de consultas ao pgsql, e tudo funciona super bem.

Como a aplicação roda em clusters (32 instâncias da VM com 1G de memoria cada) não posso acessar o filesystem, então até mesmo arquivos binários como imagens e afins são gravados no banco de dados. Algumas tabelas possuem 1.3G de dados.

Aliás o Java possui abstração quanto ao banco de dados. Tudo fica a cargo do driver JDBC, que normalmente é disponibilizado pelos próprios fabricantes e/ou comunidade.

No caso do comentário desse seu colega, pode ser algum problema no banco, pool mal dimensionado, banco sem otimização… enfim, não creio ser nada do Java, visto minhas experiências com vários bancos em nenhum tive problemas entre DB/Java.

Quaisquer dúvidas, avise-nos.

Abraços

UFAAAAAA… menos mal… bom saber disso cara, eu tbm achei muito estranho o comentário, mas como falei anteriormente, por nãoconhecer ninguém que tivesse usado ambas e por nunca ter utilizado-as também, confesso que me preocupei um pouco…

Cara, vc poderia me dizer qual a Empresa e qual o Sistema do exemplo ? Porque aí já posso dar uma referência legal de uso das Tecnologias juntas…

Se bem que nosso servidor aqui, com certeza será 1 só, nada de clusters nem nada… as vezes até o pobrezinho do PHP peida pra funcionar… hehehehehehehe

Ainda bem que pelo menos promessa de servers novos estão rolando para o projeto porvir…

Abraços :wink:

E

Dica: não rode o PostgreSQL em Windows (na verdade, não use bancos de dados em Windows se puder - o único que requer o Windows para funcionar é o SQL Server porque ele não roda em outros SO’s). Por exemplo, o Oracle roda melhor no Solaris ou no Linux.
Use o PostgreSQL em Linux ou Solaris se possível.

P

Nunca fiz um comparativo real entre os diferentes bancos integrados com Java, mas pelo que já usei de MySQL e PostgreSQL (que uso atualmente), nunca vi grande diferença de performance não. Cada um é mais rápido em alguns aspectos (impressão mesmo, nenhum teste para comprovar), mas na média o desempenho vai sempre bem.

adriano_si

Valew Paulo, valeu Entanglement, copiado ambas as dicas…mas queria mesmo um exemplo real de uso na prática, pra poder mostrar aos gestores aqui… isso é que vai me valer mesmo… hehehehehehehe

Eu tinha quase certeza absoluta dessa afirmação não ser tão grave assim quanto foi falada… hehehehe

Abraços :wink:

G

Boa tarde, Adriano.

Infelizmente contratos de NDA me impedem dizer sobre o projeto.

Mas um bom argumento com seu chefe é fazer um teste real. Um bom exeplo é executar uns mil inserts na base de dados para testar a aplicação. Isso pode ser feito com uma classe bem simples, e você pode cronometrar o tempo dos inserts e quem sabe alguns selects. Você pode implementar uma classe para o MySQL por exemplo e outro no Postgre.

adriano_si

Beleza Garcia… Vale cara… na verdade não queria detalhes do Projetoem sí, mas só pra quem foi e quantos usuários concorrentes já ajudariam…

Abraços :wink:

G

É um software de gestão pública, onde são executados diariamente 3 milhões de consultas no banco (tem dias que é mais, dias que é menos), varia entre 30 e 300 usuários conectados, com aproximadamente 10G de base de dados. Se não me engano o pgsql suporte até 32TB de dados.

Trimestralmente o sistema sofre uma sobrecarga grande quando são feitos calculos em batch de valores, despesas, e afins. Anualmente (normalmente nov/dez) o sistema faz a totalização, movimenta os dados das tabelas para um histórico. Isso consome um processamento muito grande, mas como tudo é distribuído não há problemas de performance.

A primeira versão fizemos em MySQL, porém quando houve o planejamento da segunda versão precisavamos de upgrade. Foi cogitado pgsql e oracle, porém adotamos o pgsql por ser praticamente a mesma coisa que o oracle, tendo a vantagem de ser muito mais leve, além de ser gratuito (isso diminui muito o valor final do produto, já que temos que entrar em licitações).

Envie o link desse tópico para seu gerente. :slight_smile:

adriano_si

Hehehehhehehehe…

Valew cara… será citado, com certezaaaa…

Obrigadão mesmo. :wink:

Criado 5 de outubro de 2009
Ultima resposta 5 de out. de 2009
Respostas 9
Participantes 4