He ejecutado la 2º consulta, la he modificado para que se crucen los datos con los DNIs de la tabla clientes y ha tardado 0,118 seg según HeidiSQL
También he probado lo de poner las namedQueries y sigue tardando mas o menos lo mismo.
Yendo a la desesperada he hecho la conexión a pelo y lo hace de forma inmediata... pero es una chapuza... no es plan de dejarlo así
Código:
try {
long tiempo1=System.currentTimeMillis();
Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/gestiondefinitivo", "user", "password");
PreparedStatement stmt2 = conexion.prepareStatement("UPDATE Registros reg SET "
+ "reg.comentarios='"+registroNuevo.getComentarios()+"', reg.IDEstado='"+registroNuevo.getIDEstado()+"', reg.nombreEstado='"+registroNuevo.getNombreEstado()+"', reg.operadorMovil='"+registroNuevo.getOperadorMovil()+"',"
+ " reg.NLineasMovil='"+registroNuevo.getNLineasMovil()+"', reg.permanenciaMovil='"+registroNuevo.getPermanenciaMovil()+"', reg.operadorFijo='"+ registroNuevo.getOperadorFijo()+"', reg.permanenciaFijo='"+registroNuevo.getPermanenciaFijo()+"',"
+ " reg.NLineasFijo='"+ registroNuevo.getNLineasFijo()+"', reg.concertador='"+registroNuevo.getConcertador()+"', reg.origen='"+registroNuevo.getOrigen()+"', reg.fechaModificacion='"+Calendar.getInstance().get(Calendar.DATE)+ "-"+ Integer.toString((Calendar.getInstance().get(Calendar.MONTH)) + 1)+ "-"+ Calendar.getInstance().get(Calendar.YEAR)+"' WHERE reg.IDRegistro="+(resultado.get(0)).getIDRegistro());
int result=stmt2.executeUpdate();
stmt2.close();
conexion.close();
System.out.println("Tiempo: " +Long.toString(System.currentTimeMillis()-tiempo1));
} catch (SQLException e) {
e.printStackTrace();
}
Además, no se como se comportara ese código cuando haya concurrencia (nunca va a estar sobre el mismo cliente o registro, pero si se pueden estar editando 10 registros a la vez)
Saludos.