SQL İşlem Kayıtları olarak Türkçeye çevrildiği zaman aslında bir çok şeyi açıklayan SQL sunucularının önemli parçalarından biridir Transaction Logs. Peki onu bu kadar önemli kılan nedir gelin hep beraber bunu inceleyelim.
Transaction Log, SQL’de yaptığımız her işlemi benzersiz bir kimlik ile saklayan ayrı bir veritabanıdır aslında. Bu kimlik bilgilerine Log Sequence Number ( LSN ) adı verilir.
SQL server mimarisini anlamak için Log mimarisini mutlaka hesaba katmanız gerekir. Zira her veritabanında en az 1 tane log dosyası bulunur.
Bu Log dosyası veritabanı tutarlılığını denetlediği gibi, data dosyasında ( mdf vs… ) herhangi bir sorun olduğunda verinin kurtarılmasına da ciddi katkı sağlamaktadır.
Log dosyaları bazen olduğundan fazla şişebilir, bu durumda Log Shrink işlemi yapılabilir ama Log Shrink işlemi tavsiye edilen bir işlem değildir. Zira logların neden şiştiğini çözmek daha sonra olabilecek problemlere karşı bir tedavi yönetimidir.
Örneğin, Transaction Log’lar virtual log file (vlf) dediğimiz sanal dosyalardan oluşur. Bu bilgiyi şimdilik aklımızda tutalım.
ve bir veritabanı kurulurken, genelde bütün ayarlar standart olarak bırakılır.
initial size ve autogrowth gibi… Log dosyamızın da zamanla büyüdüğünü varsayıyoruz. İşte büyüyen log dosyasıyle birlikte VLF dosyalarımız şişmeye ve performans problemleri oluşmaya başlayacaktır.
Bunu önlemek için öncelikle DBCC LOGINFO komutu yardımıyla VLF dosya sayı ve boyutlarını görebilirsiniz.
Bu işlemden sonra Log Shrink işlemi yapılıp, başlangıçta uyguladığımız ayarları değiştirmek/düzenlemek hem performans hem de SQL sağlığı için faydalı olacaktır