Delen via


Transactielogboekbestand groeit voor databases met IN-Memory OLTP in SQL Server 2022

Symptomen

Wanneer voor uw databases de FUNCTIE OLTP in het geheugen is ingeschakeld in SQL Server 2022, ziet u dat het transactielogboekbestand voortdurend groeit. Daarnaast bevat het SQL Server-foutenlogboek mogelijk berichten zoals Close thread is falling behind: 4 checkpoints outstanding.

Als u het SQL Server-exemplaar opnieuw opstart, kan het lang duren voordat de database het herstelproces van de database voltooit.

Het probleem met sys.databases en sys.dm_db_xtp_checkpoint_stats oplossen

  • Wanneer u de catalogusweergave sys.databases gebruikt om informatie te verzamelen en dit probleem op te lossen, wordt de kolom log_reuse_wait_desc weergegeven XTP_CHECKPOINT als de reden voor lange afkapping. Deze waarde geeft aan dat het transactielogboek wacht op een in-memory OLTP (voorheen bekend als Hekaton) controlepunt. Het suggereert een vertraging in controlepuntenbewerkingen, die mogelijk invloed hebben op de prestaties of de groei van logboekbestanden.

  • Wanneer u de DYNAMISCHE beheerweergave (DMV) van SQL Server gebruikt sys.dm_db_xtp_checkpoint_stats om informatie te verzamelen en dit probleem op te lossen, wordt in de kolom outstanding_checkpoint_count een niet-nulwaarde weergegeven voor een langere periode. Het geeft aan dat controlepunten niet efficiënt plaatsvinden, wat mogelijk van invloed is op de prestaties en de groei van logboekbestanden.

Oorzaak

SQL Server 2022 heeft nieuwe mogelijkheden geïntroduceerd die het geheugenbeheer in grote geheugenservers verbeteren om de out-of-memory-omstandigheden te verminderen. Een bekend probleem in deze wijziging kan soms leiden tot het gedrag dat wordt beschreven in de sectie Symptomen .

Oplossing

Voer de volgende stappen uit om het probleem op te lossen:

  1. Voeg -T9810 toe als opstartparameter voor het SQL Server-exemplaar.
  2. Start het exemplaar opnieuw op.
  3. Geef een controlepunt, maak een logboekback-up, bekijk log_reuse_wait_descen verklein het logboek indien nodig om ruimte vrij te maken.

Notitie

Dit probleem is opgelost in cumulatieve update 7 voor SQL Server 2022.

Meer informatie

Met de traceringsvlag 9810 wordt de OLTP-engine in het geheugen uitgeschakeld voor het vrijmaken van TLS-geheugen (Thread Local Storage), waarbij het gedrag van SQL Server 2019 wordt hersteld.