Sloten voordoen op de IBM DB2 -server wanneer u een query uitvoert , invoegen, bijwerken of verwijderen . Tafels hebben een " LOCKSIZE ' parameter die vergrendeling kunnen beïnvloeden . De tabel instelling van " LOCKSIZE ENIGE " kan DB2 om de grootte van de sluis te kiezen , meestal verwerven pagina sluizen . De SQL-query statements kunnen beïnvloeden vergrendeling door het instellen van een " isolatieniveau " aan het begin van de transactie . Zelfs wanneer het verleent een specifiek slot , kan DB2 de vergrendeling te bevorderen of escaleren , daarom moet u begrijpen hoe DB2 omgaat vergrendeling bij het schrijven van database- applicaties . Programmeurs kunnen de vergrendeling in te stellen op database performance te verbeteren met de " LOCK TABLE " commando echter . Instructies 1 Vergrendel de hele tabel in de gedeelde modus of exclusieve modus . Execute " LOCK TABLE myTable in de exclusieve modus " ( vervang " myTable " met de naam van de DB2- tabel ) om het slot te houden op de hele tabel totdat de transactie is afgerond . In deze modus kunnen andere gebruikers toegang krijgen tot de tabel totdat u de vergrendeling op te heffen . Kopen van 2 Uitvoeren " LOCK TABLE myTable IN SHARE MODE " om alleen - lezen toegang tot de tafel tijdens de transactie mogelijk te maken. Deze modus houdt de gegevens consequent , terwijl nog het toestaan van gebruikers om het te bekijken . De " LOCK TABLE " commando kan de prestaties te verbeteren en te voorkomen dat " deadlocks " door het creëren van een slot op de hele tabel in plaats van meerdere afzonderlijke rij sluizen . Release 3 het slot met behulp van " RELEASE ( COMMIT ) "of " RELEASE ( DEALLOCATE ) "--- je twee opties wanneer u het uitvoeren van " lOCK TABLE "statement als statische SQL . " RELEASE ( COMMIT ) COMMIT " statement " zal het slot na de uitvoering van een release " . " RELEASE ( DEALLOCATE ) " zal de vergrendeling op te heffen wanneer de toepassing wordt beëindigd . Release 4 het slot wanneer je de " LOCK TABLE " statement als dynamische SQL uitvoeren met " RELEASE ( COMMIT ) " . Als u gebruik maakt van caching , DB2 houdt bereid verklaringen in het geheugen na een ' COMMIT ' , daarom moet u het slot vrijgeven of uitvoeren van een ' COMMIT "na de prepared statements zijn niet langer in het geheugen om het slot te bevrijden < br . >
|