Aracılığıyla paylaş


SQL Server 2022'de Bellek İçi OLTP'ye sahip veritabanları için işlem günlüğü dosyası büyür

Belirtiler

Veritabanlarınızda SQL Server 2022'de Bellek İçi OLTP özelliği etkinleştirildiğinde işlem günlüğü dosyasının sürekli büyüdüğünü fark edersiniz. Ayrıca, SQL Server hata günlüğünde gibi Close thread is falling behind: 4 checkpoints outstandingiletiler olabilir.

SQL Server örneğini yeniden başlatırsanız veritabanının veritabanı kurtarma işlemini tamamlamasının uzun sürdüğünü fark edebilirsiniz.

sys.databases ve sys.dm_db_xtp_checkpoint_stats ile ilgili sorunu giderme

  • Bilgi toplamak ve bu sorunu gidermek için sys.databases katalog görünümünü kullandığınızda, uzun kesmenin nedeni olarak sütun log_reuse_wait_desc gösterilirXTP_CHECKPOINT. Bu değer, işlem günlüğünün Bellek İçi OLTP (eski adı Hekaton) denetim noktasının gerçekleşmesini beklediğini gösterir. Denetim noktası oluşturma işlemlerinde gecikme olduğunu ve performansı veya günlük dosyasının büyümesini etkileyebilen bir gecikmeyi önerir.

  • Bilgi toplamak ve bu sorunu gidermek için SQL Server dinamik yönetim görünümü (DMV) sys.dm_db_xtp_checkpoint_stats kullandığınızda, sütun outstanding_checkpoint_count uzun bir süre boyunca sıfır olmayan bir değer gösterir. Denetim noktalarının verimli bir şekilde gerçekleşmediğini, performansı ve günlük dosyasının büyümesini etkileyebileceğine işaret eder.

Neden

SQL Server 2022, yetersiz bellek koşullarını azaltmak için büyük bellek sunucularında bellek yönetimini geliştiren yeni özellikler kullanıma sunulmuştur. Bu değişiklikte bilinen bir sorun bazen Belirtiler bölümünde açıklanan davranışa yol açabilir.

Çözüm

Sorunu çözmek için şu adımları izleyin:

  1. SQL Server örneği için başlangıç parametresi olarak -T9810 ekleyin.
  2. Örneği yeniden başlatın.
  3. Bir denetim noktası oluşturun, günlük yedeği alın, alanını geri kazanmak için günlüğü gözlemleyin log_reuse_wait_descve daraltın.

Not

Bu sorun SQL Server 2022 için Toplu Güncelleştirme 7'de düzeltilmiştir.

Daha Fazla Bilgi

İzleme bayrağı 9810, Bellek İçi OLTP altyapısının İş Parçacığı Yerel Depolama (TLS) belleğini geri kazanmasını devre dışı bırakır ve SQL Server 2019'un davranışına geri döner.