SQL Server üzerinde veritabanı performansını anlık olarak izlemek ve darboğazları tespit etmek için en güçlü araçlardan biri Activity Monitor’dür. Özellikle sistemde bir yavaşlık hissedildiğinde veya “Kilitlenen bir işlem mi var?” sorusu akla geldiğinde bakılacak ilk yer burasıdır.
SSMS üzerinde bulunan instance’a sağ tıklayıp Activity Monitor bölümüne girilmesi gerekmektedir.

Gelen ekranda genel olarak Overview kısmında Activity Monitor ekranını görmekteyiz.
Sunucunun genel işlemci ve I/O durumunu anlık grafiklerle gösterir.
- % Processor Time: SQL Server’ın CPU kullanım oranı.
- Waiting Tasks: İşlem yapmak için sıra bekleyen görev sayısı.
- Database I/O: Disk üzerindeki okuma/yazma hızı (MB/sn).
- Batch Requests/sec: Saniyede gelen sorgu sayısı.

Şimdi Activity Monitor ekranındaki diğer kavramlara değinelim.
Processes
Aktif kullanıcı bağlantılarını listeler. En çok kullanılan bölümdür.

Herhangi bir session üzerine gelip sağ tıklayıp Kill edebilir. Aynı zamanda sorguyu inceleyebiliriz.

Resource Waits (Kaynak Beklemeleri)
SQL Server’ın neden beklediğini gösterir. Örneğin, disk yavaşsa “I/O” beklemeleri, bellek yetersizse “Memory” beklemeleri burada yükselir.

Data File I/O
Hangi veritabanı dosyasının (mdf, ldf) disk üzerinde en çok yük’e sebep olduğunu gösterir. Yazma ve okuma sürelerini (ms cinsinden) takip edebilirsiniz.

Recent Expensive Queries (Yakın Zamandaki Pahalı Sorgular)
Bu bölüm, son birkaç dakika içinde tamamlanmış veya hala çalışan, sistem kaynaklarını (CPU, RAM, Disk) en çok tüketen sorguları listeler. Kaynak tüketimine bakılmaktadır. Bir sorgu 1 milyon satırı okumaya çalışıyorsa veya çok karmaşık hesaplamalar yapıyorsa burada görünür. Canlı performans sorunu olduğunda ilk bakılacak yerlerden biridir.

Bir sorguya sağ tıklayıp “Edit Query Text” diyerek içeriğini görebilir veya “Show Execution Plan” ile neden yavaş çalıştığını analiz edebiliriz.

Active Expensive Queries (Aktif Pahalı Sorgular)
Bu bölüm, şu an o saniyede (real-time) çalışmaya devam eden ve yüksek kaynak tüketen sorguları gösterir. Neye Bakar. Henüz bitmemiş, işlemcide veya diskte yoğun yük oluşturan canlı işlemlere bakmaktadır. “Recent” listesinde işi bitmiş sorguları da görebilirsiniz ancak “Active” listesinde sadece o an sistemi meşgul edenleri görürsünüz. Burada CPU,Logical read ve diğer parametrelere göre sıralama yapabilirsiniz.

Bir sorguya sağ tıklayıp “Edit Query Text” diyerek içeriğini görebilir veya “Show Execution Plan” ile neden yavaş çalıştığını analiz edebiliriz.

Neden Activity Monitor kullanmalıyız deyinmek gerekirse:
Bir kullanıcı sistemi kilitliyorsa, Processes bölümünden o session’ı bulup sağ tıklayarak Kill Process diyebilirsiniz. CPU neden %100? Sorusuna “Expensive Queries” kısmından yanıt bulabilirsiniz. Profiler veya Extended Events kadar detaylı olmasa da, teknik olmayan kişilerin bile anlayabileceği bir görsel arayüz sunar.
Activity Monitor’ün kendisi de bir miktar sistem kaynağı tüketir. Sürekli açık bırakmak, çok yoğun sunucularda (High-load) ek bir yük getirebilir. Bu nedenle sadece sorun anında veya analiz sırasında kullanılması önerilir.
Başka makalede görüşmek dileğiyle..
Anne babaya kaba davranmayın İsra-23
