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