Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Declaração Preparada, Declaração Callable e Considerações de Desempenho


Do seu comentário, você tem prepareCall dentro do seu loop. Uma vantagem das instruções preparadas (e instruções que podem ser chamadas) é que você pode prepará-las uma vez e depois trocar os valores passados ​​nos parâmetros; há sobrecarga cada vez que a chamada é preparada, portanto, se você puder trazer isso para fora do seu loop, poderá descobrir que o tempo de execução diminui. Você pode descobrir que desativar o AutoCommit também ajuda, pois há uma sobrecarga com cada commit.
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, mas acho mais claro ser explícito).