Dela via


Transaktionsloggfilen växer för databaser med minnesintern OLTP i SQL Server 2022

Symptom

När dina databaser har funktionen Minnesintern OLTP aktiverad i SQL Server 2022 ser du att transaktionsloggfilen växer kontinuerligt. Dessutom kan SQL Server-felloggen ha meddelanden som Close thread is falling behind: 4 checkpoints outstanding.

Om du startar om SQL Server-instansen kan det ta lång tid att slutföra databasåterställningsprocessen.

Felsöka problemet med sys.databases och sys.dm_db_xtp_checkpoint_stats

  • När du använder katalogvyn sys.databases för att samla in information och felsöka det här problemet visas XTP_CHECKPOINT kolumnen log_reuse_wait_desc som orsaken till lång trunkering. Det här värdet anger att transaktionsloggen väntar på att en OLTP-kontrollpunkt (tidigare känd som Hekaton) ska inträffa. Det tyder på en fördröjning i kontrollpunktsåtgärder, vilket kan påverka prestanda eller loggfilstillväxt.

  • När du använder SQL Server Dynamic Management View (DMV) sys.dm_db_xtp_checkpoint_stats för att samla in information och felsöka det här problemet visar kolumnen outstanding_checkpoint_count ett värde som inte är noll under en längre tidsperiod. Det anger att kontrollpunkter inte sker effektivt, vilket kan påverka prestanda och loggfilstillväxt.

Orsak

SQL Server 2022 introducerade nya funktioner som förbättrar minneshanteringen på stora minnesservrar för att minska minnesbristen. Ett känt problem i den här ändringen kan ibland leda till det beteende som beskrivs i avsnittet Symptom .

Åtgärd

Lös problemet genom att följa dessa steg:

  1. Lägg till -T9810 som startparameter för SQL Server-instansen.
  2. Starta om instansen.
  3. Utfärda en kontrollpunkt, ta en loggsäkerhetskopia, observera log_reuse_wait_descoch krymp loggen om det behövs för att frigöra utrymme.

Kommentar

Det här problemet har åtgärdats i kumulativ uppdatering 7 för SQL Server 2022.

Mer information

Spårningsflaggan 9810 inaktiverar DEN minnesinterna OLTP-motorn från att frigöra TLS-minne (Thread Local Storage) och återgår till beteendet för SQL Server 2019.