Serrature si verificano sul server IBM DB2 ogni volta che si esegue una query , inserire, aggiornare o eliminare. Le tabelle hanno un parametro " LOCKSIZE " che possono influenzare bloccaggio . La tavola di " LOCKSIZE ANY" consente a DB2 di scegliere la dimensione del blocco , di solito acquisire blocchi di pagina . Le istruzioni di query SQL possono influenzare bloccaggio impostando un " livello di isolamento " all'inizio dell'operazione . Anche quando si concede un blocco specifico , DB2 può promuovere o intensificare il blocco , pertanto , è necessario capire come DB2 gestisce blocco durante la scrittura di applicazioni di database . I programmatori possono impostare il livello di blocco per migliorare le prestazioni del database con il comando "LOCK TABLE" , comunque . Istruzioni
1
Bloccare l'intera tabella in modalità condivisa o modalità esclusiva . Execute "LOCK tabella MyTable in modalità esclusiva " (sostituire " myTable " con il nome della tabella DB2) per contenere il blocco su tutto il tavolo fino a quando la transazione è completata. Questa modalità impedisce ad altri utenti di accedere alla tabella fino a quando non si rilascia il blocco .
2
Execute " LOCK TABLE myTable IN SHARE MODE " per consentire l' accesso in sola lettura al tavolo durante la transazione . Questa modalità mantiene i dati coerenti , pur consentendo agli utenti di visualizzare esso . Il comando "LOCK TABLE " in grado di migliorare le prestazioni e impedire " deadlock ", con la creazione di un blocco su tutto il tavolo invece di diversi blocchi di riga individuali .
3
Rilasciare la serratura con "RELEASE ( COMMIT ) "o" RELEASE ( DEALLOCATE ) "--- le due opzioni quando si esegue il " LOCK TABLE " economico come SQL statico . " RELEASE ( COMMIT ) " rilascerà il blocco dopo l'esecuzione di una" dichiarazione COMMIT " . "RELEASE ( DEALLOCATE ) " rilascerà il blocco quando l'applicazione termina .
4
Rilasciare il blocco quando si esegue il " LOCK TABLE " dichiarazione SQL dinamico con "RELEASE ( COMMIT ) " . Se si utilizza la memorizzazione nella cache , DB2 mantiene espressi in memoria dopo un "commit" , pertanto , è necessario rilasciare il blocco o eseguire un "commit ", dopo le dichiarazioni preparati non sono più in memoria per liberare la serratura
< br . >