sql >> Base de Datos >  >> RDS >> Oracle

PreparedStatement , CallableStatement y consideraciones de rendimiento

De su comentario, tiene prepareCall dentro de su ciclo. Una ventaja de las declaraciones preparadas (y las declaraciones invocables) es que puede prepararlas una vez y luego intercambiar los valores pasados ​​en los parámetros; hay gastos generales cada vez que se prepara la llamada, por lo que si pudiera sacar eso de su ciclo, es posible que el tiempo de ejecución disminuya. Puede encontrar que desactivar AutoCommit también ayuda, ya que hay una sobrecarga con cada confirmación.

conn.setAutoCommit(false);
CallableStatement stmt = conn.prepareCall(sql);
while(true) {
    stmt.setInt(1, value);
    stmt.execute();
}
conn.commit();
conn.setAutoCommit(true);

(conn.setAutoCommit(true) se compromete, pero me parece más claro ser explícito).