İşlem günlüğü VLF'leri performans için ne kadar önemlidir?


12

Veritabanı performansını dikkate alırken VLF'ler ne kadar önemlidir? VLF'ler için en uygun durumu ne tarif eder?



Harika - Bunun performans raporlaması için yararlı olduğunu görebiliyorum
the_good_pony

1
@DBAWaffle Bkz: SQL Server VLF'leri, Glenn Berry'den Bölüm 1 -> sqlskills.com/blogs/glenn/…
Kin Shah

Yanıtlar:


17

Sanal günlük dosyası nedir?

SQL Server, her veritabanı için işlem günlüğü dosyasını 'sanal günlük dosyaları' (veya kısaca VLF'ler) adı verilen daha küçük parçalara böler. Birincil işlevleri, bir günlük yedeklemesindeki kesme işaretleri gibi, SQL Server yalnızca tamamen boş olan VLF'leri temizler (ve yeniden kullanım için kullanılabilir). MSDN'de İşlem Günlüğü - Fiziksel Mimari konusunda bir parça vardır .

VLF sayısını ne belirler?

Bir günlük dosyası her büyüdüğünde (otomatik büyüme veya manuel büyüme yoluyla), günlük dosyasının yeni bölümü, yalnızca yeni bölümün boyutuna bağlı olarak (mevcut işlem günlüğü tek başına bırakılır) bir dizi VLF'ye bölünür. Bu nedenle, küçük otomatik büyüme ayarları (yani varsayılan olan% 10 otomatik büyüme) çok sayıda VLF'nin oluşturulmasına neden olur.

Çok sayıda VLF'nin etkileri nelerdir?

Çok sayıda VLF'nin neden olduğu birincil sorun:

  • Yavaş kurtarma (kurtarma, veritabanı geri yüklemesi sırasında tamamlanan işlemlerin veri sayfalarına yazıldığı ve eksik işlemlerin geri alındığı bir aşamadır).
  • Veritabanı yansıtma kurulumunda yavaş günlük okuyucu performansı.
  • Veritabanı anlık görüntüsü oluşturma sırasında yavaş performans (bunun DBCC, engellemeden tutarlılık denetimlerini kolaylaştırmak için arka planda veritabanı anlık görüntüleri kullandığından belirli işlevlerini de içerdiğini unutmayın ).

Veritabanımda kaç VLF bulunduğunu nasıl öğrenebilirim?

DBCC LOGINFOveritabanınızın işlem günlüğündeki her VLF için 1 satır döndürür. Bu soru , bunu bir sunucudaki tüm veritabanlarına uygulamak için birkaç yararlı komut dosyasına sahiptir.

Kaç VLF çok fazla?

Bu, kendiniz için yapmanız gereken bir karar çağrısıdır. Kişisel kuralım, 50 yaşın altında karışıklık yapmaya değmez ve 100'den fazla (ve benzeri) ve otomatik büyüme ayarlarını düzeltirim ve (bir sonraki bakım penceresinde) günlüğü küçültmek ve yeniden oluşturmak için zihinsel bir not oluştururum (aşağıdaki gibi) .

Yardım! Yüksek milyar VLF'im var ve veritabanı kurtarma işlemim bütün gün sürüyor!

Kısa taslak ( Kimberly Tripp'in blogundan ):

  • Veritabanında etkin olan tek bağlantı olduğunuzdan emin olun (bunu bir bakım penceresi sırasında yapın)
  • İşlem günlüğünü diske yedekle (kullanarak BACKUP LOG)
  • Günlük dosyasını mümkün olan en küçük boyuta küçültmek için DBCC SHRINKFILEile çalıştırın TRUNCATEONLY.
  • ALTER DATABASE [...] MODIFY FILE [...] SIZE=newsizeİşlem günlüğünüzü tek bir adımda yeniden boyutlandırmak için çalıştırın **.

** Not - çok büyük bir günlük dosyanız varsa (onlarca GB veya daha fazla), aşırı 'tıknaz' günlük yedeklemelerini önlemek için uygun boyutta uygun sayıda VLF almak için birden çok adımda yeniden boyutlandırmak isteyebilirsiniz. VLF'ler kısaltma birimi olduğundan, Kim'in blogunda ayrıntılı olarak gösterildiği gibi günlük yedekleme boyutlarını da belirlerler .


Teşekkür ederiz, birden çok VLF'nin verilerin düzenli olarak değiştirildiği yüksek OLTP ortamındaki performansı daha açık bir şekilde engelleyeceğini düşünüyor musunuz?
the_good_pony

Çok sayıda VLF sadece yukarıda özetlediğim durumlarda (kurtarma, anlık görüntüler, yansıtma) gerçekten dikkate değerdir. Bir OLTP ortamında performansı biraz engelleyebilirler, ancak sadece marjinal olarak.
Simon Righarts

1
Benim için, 20 saatten fazla iyileşme beni düşük (1.000'in altında) VLF sayımını korumanın önemine ikna etti.
Max Vernon

@SimonRigharts Merak ediyorum. Çok sayıda VLF düzenli işlem performansını etkiler mi? Yoksa yalnızca yedeklemeleri ve geri yüklemeleri etkiler mi?
Chris Aldrich

@ChrisAldrich Bir VLF sınırına yayılıyorsa (ancak duymadım) bir işlemde küçük bir ek yük olabilir , ancak soruda ayrıntılı olarak açıklandığı gibi, kurtarma, yansıtma veya anlık görüntüler sırasında çok sayıda VLF bulunur.
Simon Righarts
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.