Curiosamente consegui fazer uma consulta ficar muito mais rápido utilizando Statement ao invés de PrepareStatement. A diferença foi absurda, com PrepareStatement levava mais de 2 minutos e com Statement é na hora.
O banco utilizado é DB2.
A pergunta é, o PrepareStatement não deveria ser mais rápido? Será que o banco de dados (DB2) pode influenciar?
usado para executar um comando SQL estático e devolvendo os resultados que produz.
PreparedStatement
Um objeto que representa um precompilada SQL.
A instrução SQL é compilada e armazenada em um objeto PreparedStatement. Este objeto pode então ser usada para executar eficientemente esta afirmação várias vezes.
como a interface Statement executa comandos SQL’s estáticos
pode ser que seja isso o tempo de resposta
De fato, o DB2 não é muito rápido para a primeira vez que você cria o PreparedStatement, mas se o tal PreparedStatement for reusado (ou seja, a mesma ou outra aplicação usa exatamente A MESMA STRING SQL no PreparedStatement, embora os parâmetros possam e devam ser diferentes), a execução será mais rápida.