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. |