Velocidade JDBC

Olá,

Tenho um sistema que estou fazendo e fiz testes com vários bancos de dados para ver qual seria o escolhido como padrão. O acesso é via JDBC o sistema cria uma extrutura de tabelas para simular um banco hierárquico. As principais querys são pesquisas em chaves primarias.

Testei postgresql, oracle xe e H2 SQL.

O único banco que consegui uma velocidade aceitável foi no H2 e acredito que isto ocorre pois optei por ele embedded e com isto não há custo de rede e principalmente ele fica na mesma JVM que as classes que acessam ele.
Mais ainda assim gostaria de ter uma opção como o postgres pois acho um ótimo banco.
Uma query simples retorna no H2 em 1ms e retorna no Postgres em 1ms desde que rodando na maquina via psql. Mais via JDBC a velocidade mínima que consegui para a mesma query é 12ms mesmo acessando via localhost. Vocês acreditam que este resultado é causado pelo overhead de mesmo sendo localhost ainda assim é uma chamada de rede ou é gerado pelo driver JDBC?

Sei que 12ms não parecem muito mais é um sistema que faz muitas querys sequenciais ao banco então estes 11ms a mais fazem uma grande diferença no resultado final.

Alguma idéia?

Como você fez seu benchmark? Pode ser que a primeira execução demore um tanto a mais por causa da carga de classes que a JVM tem que fazer, e não por causa da consulta em sí. Além disso, tem que ver a latência de rede.

[]'s

Realmente, vi que qualquer execução que faço primeiro tipo SELECT 1 as RESULT faz cair o tempo das chamadas subsequentes. Caiu para 5ms. Ainda tenho problemas com a velocidade de gravação mais ai com acertos no WAL do postgres ou um disco mais rápido acredito que resolva.

Obrigado.

Seria interessante por os outros resultados(qual foi o mais lento).Quanto a gravação, de quantos MB(ou GB) estamos falando?Se for dados para backup, você pode compactar.

Vou tentar organizar os dados e ai coloco o comparativo. É que é o projeto ta corrido por isto só coloquei o mais básico. A parte mais critica era os inserts da importação inicial de uma base de testes, enquanto no H2 importava em 40 minutos o postgres levava mais de 14 horas, quando desativei o fsync do postgres consegui cair para 2 horas.