dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #59
sqlserver
Storageread-onlyMin Version: 2016 SP2

SQL Server Transaction Log Kullanımı, VLF Sayısı ve Log Reuse Nedeni

Log doluluğunu, log yeniden kullanımını bekleten nedeni ve VLF sayısını gösterir. Şişen log dosyasının sebebini bulmak için ilk bakılacak yerdir.

#transaction-log#vlf#log-reuse
sqlserver · sql
SELECT d.name, d.recovery_model_desc, d.log_reuse_wait_desc,
       ls.total_log_size_in_bytes / 1048576 AS log_size_mb,
       CAST(ls.used_log_space_in_percent AS DECIMAL(5,1)) AS used_pct,
       (SELECT COUNT(*) FROM sys.dm_db_log_info(d.database_id)) AS vlf_count
FROM sys.databases d
CROSS APPLY sys.dm_db_log_space_usage ls   -- mevcut DB için; tümü için veritabanı bazında çalıştırın
WHERE d.database_id = DB_ID();
Operasyonel Notlar & İyileştirme Aksiyonu

`log_reuse_wait_desc` değeri `LOG_BACKUP`, `ACTIVE_TRANSACTION`, `AVAILABILITY_REPLICA` gibi nedeni söyler. VLF > 1000 ise log büyütmelerini gözden geçirin.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 2016 SP2) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.