Condividi tramite


Gestione delle dimensioni delle transazioni

Quando si utilizzano le transazioni, è importante garantire che siano il più brevi possibile. La modalità autocommit predefinita, che è possibile attivare o disattivare utilizzando il metodo setAutoCommit, consente di esegue automaticamente il commit di ogni azione e costituisce il metodo di lavoro più semplice per la maggior parte degli sviluppatori.

Quando si utilizzano transazioni manuali, assicurarsi che il codice esegua il commit della transazione il più rapidamente possibile. Se una transazione viene tenuta aperta, gli altri utenti non possono accedere ai dati. Durante la programmazione è ad esempio consigliabile inserire una chiamata di rollback nel blocco catch e una chiamata di commit nel blocco finally. Questo dipende tuttavia dalla progettazione dell'applicazione.

Contenendo la dimensione delle transazioni, è possibile creare una concorrenza migliore. Se ad esempio si avvia una transazione manuale e si modificano 10.000 righe in una tabella costituita da 20.000 righe, metà tabella sarà completamente bloccata per tutti gli altri utenti, anche se stanno solo leggendo i dati. Riducendo le modifiche a 2.000 righe, si lascia disponibile il 90% della tabella.

Assicurarsi inoltre di utilizzare l'impostazione di timeout del blocco se per l'applicazione si prevedono situazioni di blocco ed è necessario impostare un timeout per tali situazioni. A tale scopo, utilizzare il metodo setLockTimeout. L'impostazione predefinita per il timeout del blocco è -1, che significa che il blocco ha un tempo indefinito. È possibile impostare il timeout del blocco su 30 secondi, che significa che se una connessione bloccata viene bloccata da un'altra connessione, si verifica il timeout entro 30 secondi.

Vedere anche

Altre risorse

Utilizzo del driver JDBC per il miglioramento di prestazioni e affidabilità