De l'utilisation des méthodes prepareStatement() et prepareCall().
Deux types d'optimisation : les instructions prédéfinies (le plan d'accès aux tables n'est fait qu'un fois), et les procédures stockées (compilées dans le SGBD).
Dans le cas d'un ensemble de requêtes similaires, il est préférable, au lieu de répéter N fois s.execute(requete), de signaler au SGBD qu'il va devoir faire N fois la même chose sur des données différentes. Ainsi le SGBD ne recalcule pas son plan d'exécution entre deux requêtes successives.
PreparedStatement ps = connection.preparedStatement(requeteAvecParametres); for (int i=0; i < N; i++) { s.setFloat(1,parametre1()); s.setInt(2,parametre2()); s.execute(); } connection.commit(); s.close();
Il est possible de faire appel directement aux procédures stockées, si l'on connaît son nom, ses entrées et ses sorties.
CallableStatement ps = connection.preparedCall("{call procStockee[(?,?)]}"); ps.registerOutParameter(1,java.sql.Types.FLOAT); for (int i=0; i < N; i++) { ps.setInt(2,parametre2()); ps.execute(); } connection.commit(); s.close();