SQL Server yüklendiği andan itibaren arka planda sessizce çalışan bir izleme mekanizması vardır: system_health oturumu. Çoğu zaman varlığı unutulan bu .xel uzantılı dosyalar, aslında sistemde bir sorun çıktığında başvurulacak ilk ve en kritik kaynaktır.
SQL Server Log klasöründe yer alan bu dosyalar, sunucunun performansını ve kararlılığını doğrudan etkileyen olayları otomatik olarak kaydeder. İşte inceleme nedenleri:
- SQL Server’da meydana gelen 20 ve üzeri ağırlıktaki (severity) kritik hatalar buraya kaydedilir. Sistem neden çöktü veya neden beklenmedik bir hata verdi? Cevabı bu dosyalardadır.
- Deadlock (Ölü Döngü) Analizi: Veritabanında iki işlemin birbirini kilitlemesi sonucu oluşan “Deadlock” olayları görselleştirilmiş şemalarıyla birlikte burada saklanır. Hangi sorgunun hangisini kilitlediğini buradan görebilirsiniz.
- Bellek (Memory) Sorunları: Sunucuda bellek yetersizliği yaşandığında (Out of Memory), sistemin o anki durumuna dair teşhis bilgileri bu dosyalara yazılır.
- CLR Hataları ve Güvenlik Sorunları: Uygulama katmanındaki hatalar veya oturum açma sırasındaki bazı başarısızlıklar buraya düşer.
Bu dosyalar hem sistemsel (OS düzeyinde) hem de SQL düzeyinde hibrit bir tanılama imkanı sunar:
- Bekleme türleri (Wait Stats), CPU darboğazları ve I/O gecikmeleri hakkında veriler sunarak donanım/işletim sistemi uyumunu ölçer.
- Hatalı sorgu sözdizimleri, zaman aşımına uğrayan (timeout) işlemler ve kilitlenme grafiklerini sunarak yazılımsal optimizasyon yapmanıza olanak tanır.
Görselde gördüğün .xel dosyaları düz metin dosyaları değildir. Bunları incelemek için:

- SQL Server Management Studio (SSMS) kullanıyorsanız dosyaya çift tıklamanız yeterlidir.
- Dosya açıldığında karşınıza çıkan listede olaylara (Event) göre sıralama yapabilir, belirli bir zaman dilimindeki hatayı saniyeler içinde bulabilirsiniz.
Yukarıda log klasöründe manuel olarak açılıp inceleneceği gibi aşağıdaki yapı ile tüm .xel uzantılı dosyalar seçilip genel bir okuma işlemi yapılır. SSMS üzerinde bulunan File kısmında Open dedikten sonra Merge Extented Event Files.. kısmına girilir.

Gelen ekranda Add.. denilip sql server log klasörü altında bulunan tüm .xel uzantılı dosyalar seçilip genel bir okuma işlemi yapılır.

Gelen ekranda .xel uzantılı dosyalar seçilir.

Seçim işlemini yaptıktan sonra OK butonu ile işlem tamamlanır.

Artık system_health yapısıyla ilgili error log’lara düşmeyen tüm log’ları detaylı bir şekilde görmüş oluruz.

Details kısmında hangi kolonların Displaning ekranına eklenmesini ilgili bölüm üzerine tıklanarak Show Column in Table olarak eklenebilir.

Yukarıdaki ifade de grouplama işlemi yapmak için SSMS arayüzünde ilgili Events açıldığında sağ üst bölümden Groupping kısmında group’lama işleminin yapılması gerekmektedir.

Hangi kolonu grouplama işlemi için kullanacaksak ilgili kolon seçildikten sonra sağ tarafa alınır.

OK butonuna basıp işlem sonlandırılır.

Yukarıdaki işlemi tamamladıktan sonra isme göre grouplama işlemi yapılmaktadır. Hangi ifadeyi kontrol etmek istiyorsak ilgili ifade seçilmektedir.

Worker Tread’ler konusunda maksimum tread sayısına ulaştığı için Warning mesajı üretmektedir.

Data ifadesine çift tıkladıktan sonra XML uzantısı karşımıza çıkmaktadır. Burada detaylı bir şekilde işlemlerimizi görebiliriz.

Bu makalede system_health (XEL) dosyalarını detaylı bir şekilde görmüş olduk. Başka makalede görüşmek dileğiyle..
Anne babaya kaba davranmayın İsra-23
