SQL SERVER – Database Auto Growth – Otomatik Büyümeleri

By | December 10, 2013

SQL Server’da bulunan Auto Growth (Otomatik Büyüme) özelliği sayesinde veritabanı dosyaları dolduğunda sistem tarafından otomatik olarak büyütülmektedir. Bu büyüme oransal ya da boyutsal olarak daha önceden belirlenebilir. Aynı zamanda dosyaların en fazla hangi boyuta kadar büyüyebileceği de ayarlanabilir.

Bu işlem için Veritabanı üzerinde sağ tıklayıp properties -> Files bölümünden aşağıdaki gibi görüntülenebilir ve değişiklikler yapılabilir.

dbautogrowth

 

Auto Growth işlemi diskte yeni bir alan allocate edilmesinden dolayı kaynak tüketimi fazla olan bir operasyondur. Büyümenin boyutlarına göre bazı durumlarda bu büyüme işlemi 1-5 saniye arasında sürebilir. Büyüme tamamlanana kadar da ilgili dosyaya gelen okuma ve yazma istekleri bekletilecek bu da performans sıkıntısı olarak dönecektir.

Sistemin en az yoğun olduğu saatlerde dosyalar yeteri kadar büyütülürse sistemin yoğun olduğu zamanlarda büyüme ihtiyacı ortaya çıkmayacak dolayısıyla performans sıkıntısı oluşmayacaktır.

Her ne kadar büyümeler DBA’ler tarafından yapılsa da plansız büyümelere karşı yine de Auto Growth özelliğinin açık olması önerilir.

Büyümelerin default değeri data dosyası için 1MB, log dosyaları için %10’dur. Değeri default haliyle bırakmak çoğu durumda performans sıkıntısı doğurmaktadır.

Peki bu değerleri kaç olarak ayarlamalıyız?

Kesinlikle büyüme oranın % şeklinde kalmaması gerekmektedir. Bunun sebebi; düşük boyutlu dosyalarda sürekli auto growth yapma ihtiyacı doğacakken büyük boyutlu dosyalarda da tek seferde çok fazla büyüme yapılma ihtimalidir.

Örneğin dosyanız şu anda 10MB ve auto growth değeri %10 ise büyümeler 1MB’lık bloklar şeklinde yapılacak ve sürekli büyüme ihtiyacı ortaya çıkacaktır.

Tam tersini düşündüğümüzde yani dosyanın boyutunun 100GB olduğunu düşündüğümüzde, bu durumda da her büyüme için 10 GB’lık dosya allocate edilmeye çalışılacak. Bu da uzun sürecektir.

Yüzdesel büyüme değerleri vermektense sabit değerler vermeliyiz. Peki bu sabit değer ne olmalı? 10MB, 100MB, 1GB, 10 GB gibi değerler mi olmalı ? Best practice auto growth değerinin 1GB’dan büyük set edilmemesidir ve ben kendi ortamlarında data dosyaları için 1024MB ya da 512MB log dosyaları için de 512MB ya da 256MB set etmekteyim. Siz de bu değerleri gönül rahatlığıyla kullanabilirsiniz.

Leave a Reply

Your email address will not be published. Required fields are marked *