Het vergrendelingsgedrag van databases beheren

Belangrijk

Deze inhoud is gearchiveerd en wordt niet bijgewerkt. Ga voor de meest recente documentatie naar Nieuwe en geplande functies voor Dynamics 365 Business Central. Ga voor de meest recente releaseplannen naar de pagina Releaseplannen voor Dynamics 365, Power Platform en Cloud for Industry.

Geactiveerd voor Openbare preview Algemene beschikbaarheid
Beheerders, makers, marketeers of analisten, automatisch 1 maart 2023 1 apr. 2023

Zakelijke waarde

Databasevergrendeling is een van de belangrijkste oorzaken van prestatieproblemen. Wanneer AL-code minder vergrendelingen accepteert, verhoogt dit de prestaties van het systeem voor gebruikers.

Functiedetails

Standaard bepaalt de runtime van Business Central automatisch de isolatieniveaus die worden gebruikt bij het opvragen van gegevens uit de database. AL-ontwikkelaars kunnen nu expliciet het database-isolatieniveau bepalen van individuele leesbewerkingen voor een exemplaar van een record.

De nieuwe methode ReadIsolation is geïntroduceerd voor het recordgegevenstype. De methode heeft de volgende syntaxis:

rec.ReadIsolation := IsolationLevel::<enum value>

De methode kan ook worden aangeroepen met de syntaxis om toegang te krijgen tot eigenschappen.

In de volgende tabel worden de mogelijke IsolationLevel-waarden beschreven:

Waarde Beschrijving
Standaard Het isolatieniveau van de tabel voor leesbewerkingen wordt gevolgd. Het kiezen van deze waarde staat gelijk aan het niet instellen van een IsolationLevel.
ReadCommitted Hiermee zijn alleen leesbewerkingen toegestaan op vastgelegde gegevens, niet op gegevens die door andere transacties zijn gewijzigd maar nog niet zijn vastgelegd.
ReadUncommitted Hiermee wordt de record in staat gesteld gegevens te lezen die door andere transacties zijn gewijzigd maar nog niet zijn vastgelegd (ook wel 'dirty reads', oftewel 'vuile leesbewerkingen' genoemd). Een ReadUncommitted-transactie accepteert geen vergrendelingen en negeert vergrendelingen van andere transacties.
RepeatableRead Deze waarde zorgt ervoor dat leesbewerkingen stabiel blijven gedurende de levensduur van de huidige transactie. Totdat de huidige transactie is voltooid, kan de record geen gegevens lezen die zijn gewijzigd maar nog niet zijn vastgelegd door andere transacties en kunnen andere transacties geen gegevens wijzigen die zijn gelezen door de huidige transactie.
UpdLock Deze waarde zorgt ervoor dat leesbewerkingen consistent blijven gedurende de levensduur van de huidige transactie. Totdat de huidige transactie is voltooid, kan de record geen gegevens lezen die zijn gewijzigd maar nog niet zijn vastgelegd door andere transacties en kunnen andere transacties met hetzelfde isolatieniveau geen gegevens lezen die zijn gelezen door de record.

Zie ook

Isolatieniveau van instanties vastleggen (docs)