sql >> Databasteknik >  >> RDS >> Oracle

PreparedStatement , CallableStatement och prestationsöverväganden

Från din kommentar har du prepareCall i din loop. En fördel med förberedda satser (och anropsbara satser) är att du kan förbereda det en gång och sedan byta ut de värden som skickas i parametrarna; det finns overhead varje gång samtalet förbereds, så om du kunde ta det utanför din loop kan du upptäcka att körtiden minskar. Du kanske upptäcker att det också hjälper att stänga av AutoCommit, eftersom det finns overhead för varje 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) begår, men jag tycker att det är tydligare att vara explicit).



  1. Vad är databasberoenden?

  2. Starta om primärnyckelnummer för befintliga rader efter att ha tagit bort större delen av en stor tabell

  3. Hur kontrollerar jag om radioknappen är markerad eller vald i jQuery?

  4. SQLite Query Exception Android Studio Syntax Felkod 1