Dela via


Styra databasens låsbeteende

Viktigt

Detta innehåll är arkiverat och uppdateras inte. Den senaste dokumentationen finns i Nya och planerade funktioner för Dynamics 365 Business Central. De senaste utgivningsplanerna finns i Utgivningsplaner för Dynamics 365 och Power Platform och Cloud for Industry.

Aktiverat för Allmänt tillgänglig förhandsversion Allmän tillgänglighet
Administratörer, utvecklare, marknadsförare eller analytiker, automatiskt 1 mars 2023 1 april 2023

Affärsvärde

Databaslåsning är en av de viktigaste orsakerna till prestandaproblem. När AL-kod använder färre lås förbättras systemets prestanda för användarna.

Information om funktionen

Som standard avgör körmiljön för Business Central automatiskt de isoleringsnivåer som ska användas för frågor mot databasen. Nu kan AL-utvecklare uttryckligen styra databasens isoleringsnivå för enskilda läsningar på en postinstans.

Den nya metoden ReadIsolation har införts för postdatatypen. Metoden har följande syntax:

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

Metoden kan också anropas via åtkomstsyntaxen för egenskaper.

Följande tabell beskriver de möjliga värdena för IsolationLevel:

Värde Beskrivning
Default Följer tabellens isoleringsnivå för läsningar, samma beteende som om du inte ställer in IsolationLevel.
ReadCommitted Gör så att enbart bekräftade data kan läsas, inte data som har ändrats av andra transaktioner men ännu inte har bekräftats.
ReadUncommitted Posten kan läsa data som har ändrats av andra transaktioner men ännu inte har bekräftats (kallas även dirty reads). En ReadUncommitted-transaktion använder inga lås och ignorerar lås från andra transaktioner.
RepeatableRead Ser till att läsningar förblir stabila under den aktuella transaktionens livslängd. Tills den aktuella transaktionen slutförs kan posten inte läsa data som har ändrats men ännu inte bekräftats av andra transaktioner, och andra transaktioner kan inte ändra data som den aktuella transaktionen har läst.
UpdLock Ser till att läsningar förblir konsekventa under den aktuella transaktionens livslängd. Tills den aktuella transaktionen slutförs kan posten inte läsa data som har ändrats men ännu inte bekräftats av andra transaktioner, och andra transaktioner med samma isoleringsnivå kan inte läsa data som den aktuella posten har läst.

Se även

Postinstansens isoleringsnivå (Docs)