Veritabanı performansını dikkate alırken VLF'ler ne kadar önemlidir? VLF'ler için en uygun durumu ne tarif eder?
Veritabanı performansını dikkate alırken VLF'ler ne kadar önemlidir? VLF'ler için en uygun durumu ne tarif eder?
Yanıtlar:
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:
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 LOGINFO
veritabanı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 ):
BACKUP LOG
)DBCC SHRINKFILE
ile ç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 .