Låse opstår på IBM DB2-server , hver gang du udfører en forespørgsel, indsætte, opdatere eller slette . Tabeller har en " LOCKSIZE " parameter, der kan påvirke låsning. Tabellen indstillingen for " LOCKSIZE NOGEN " giver DB2 for at vælge størrelsen af låsen , som regel erhverve side låse. SQL-forespørgslen udsagn kan påvirke låsning ved at opstille et " isolation level " i begyndelsen af transaktionen. Selv når det giver en særlig lås, kan DB2 fremme eller eskalere låsning , og derfor skal du forstå, hvordan DB2 håndterer låsning , når du skriver database applikationer. Programmører kan indstille låsen for at forbedre database performance med " LOCK TABLE " kommando , dog. Instruktioner
1
Lås hele tabellen i delt tilstand eller udelt . Udfør "LOCK TABLE MinTabel med udelt " ( erstat " MinTabel " med navnet på DB2-tabel ) for at holde låsen på hele bordet, indtil transaktionen er fuldført. Denne tilstand forhindrer andre brugere i at få adgang til bordet, indtil du slipper låsen.
2
Udfør "LOCK TABLE MinTabel IN SHARE MODE " for at tillade læseadgang til tabellen under transaktionen . Denne tilstand holder data konsekvent mens det stadig tillader brugere at se den. Den " LOCK TABLE " kommando kan forbedre ydeevnen og undgå " deadlocks " ved at oprette én lås på hele tabellen i stedet for flere individuelle åreholdere .
3
Frigør låsen ved hjælp af " RELEASE ( COMMIT ) "eller" RELEASE ( deallocate ) " --- dine to muligheder, når du udfører " LOCK TABLE "erklæring som statisk SQL. " RELEASE ( COMMIT ) " vil frigive låsen efter udførelsen af en " COMMIT "erklæring . " RELEASE ( deallocate )" vil frigive låsen , når programmet slutter.
4
Slip låsen, når du udfører "LOCK TABLE " erklæring så dynamisk SQL med " RELEASE ( COMMIT )" . Hvis du bruger caching, DB2 holder forberedt udsagn i hukommelsen efter en " COMMIT " , og derfor skal du deallocate låsen eller udføre en " COMMIT " efter de forberedte udsagn er ikke længere i hukommelsen for at frigøre låsen
< br . >