sql >> Databáze >  >> RDS >> Oracle

PreparedStatement, CallableStatement a úvahy o výkonu

Z vašeho komentáře máte ve smyčce připravitCall. Výhodou připravených příkazů (a volatelných příkazů) je, že je můžete připravit jednou a poté zaměnit hodnoty předané v parametrech; při každé přípravě hovoru je režie, takže pokud byste to mohli přenést mimo vaši smyčku, možná zjistíte, že doba běhu se zkracuje. Možná zjistíte, že vypnutí AutoCommit také pomůže, protože s každým potvrzením je režie.

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 zavazuje, ale zdá se mi jasnější, aby byl explicitní).



  1. Vyberte Podrobnosti databáze a názvy tabulek v iSQL plus

  2. Jak vytáhnout data z databáze a zobrazit je jako ListView

  3. sequelize - Nelze přidat omezení cizího klíče

  4. získat záznamy za poslední tři měsíce z tabulky