Oracle
 sql >> Base de données >  >> RDS >> Oracle

PreparedStatement , CallableStatement et considérations de performance

D'après votre commentaire, vous avez prepareCall dans votre boucle. Un avantage des instructions préparées (et des instructions appelables) est que vous pouvez les préparer une seule fois, puis échanger les valeurs passées dans les paramètres ; il y a une surcharge chaque fois que l'appel est préparé, donc si vous pouviez l'apporter en dehors de votre boucle, vous constaterez peut-être que le temps d'exécution diminue. Vous constaterez peut-être que la désactivation d'AutoCommit est également utile, car il y a une surcharge à chaque validation.

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

(conn.setAutoCommit(true) s'engage, mais je trouve plus clair d'être explicite).