SQL Server Profiler Nedir?

SQL Server Profiler Nedir?

Selamlar,

SQL Server Profiler hakkında kısaca, en azından temel amaca hizmet edecek şekilde kullanımı ile ilgili bir iki not paylaşmak istiyordum. Lafı çok uzatmadan konuya giriyorum.

SQL Server Profiler Nedir?

Microsoft SQL Server Profiler bağlandığınız bir SQL Server Veritabanı sisteminin içerisindeki işlemleri (select, update, delete, insert), bağlı kullanıcıları ve gelen istekleri anlık, canlı bir şekilde size raporlayan yardımcı bir programdır.

SQL Server Profiler Neden Kullanılır?

Şahsi kullanım amacımı söylemem gerekirse ben hata yakalamak amacıyla kullanıyorum. İyi de hata nasıl yakalanabilir ki? Şöyle izah edeyim; uygulama geliştirme süreçlerimizde herhangi bir DAL (Data Access Layer) kullanıyoruz, geliştirme ortamımız Visual Studio, anlık olarak sql server’a gönderilen sorguları intellitrace üzerinden görebiliriz ancak tüm sorguları tek seferde program son hızda çalışırken görmek istiyorum, arka tarafta sorgu ürettiğimiz mekanizmaların sorgu çıktılarını merak ediyorum, sql server’a gönderilen sorgudan tam emin olamadığımda veya istediğim sonuç dönmediğinde “Acaba nasıl bir sorgu SQL’e ulaştı” sorusuna cevabı Profiler’da buluyorum.

Profiler size hataları anlık olarak göstermeyecektir ancak SQL Server’a gönderilen tüm sorguları size gösterecek ve dilediğiniz sorguyu alıp SQL Server üzerinde çalıştırdığınızda net bir şekilde hataları görüntüleyebilirsiniz.

Ek olarak genellikle kullanım alanına baktığımız da ise sistem tarafında monitoring yapan arkadaşlarımızın anlık performans izlemesi ve/veya anlık olarak login işlemlerini görmek amacıyla kullandıklarını da söyleyebilirim.

Hadi başlayalım;

Öncelikle profiler.exe dosyasını açmamız gerekiyor, Windows içerisinde “Profiler” aramasını yaparsanız karşınıza çıkacaktır. (Kurulum esnasında yüklediğinizden emin olunuz)

Dosya yolu şu şekilde karşınıza çıkacaktır : C:\Program Files (x86)\Microsoft SQL Server\{Versiyonunuz}\Tools\Binn\Profiler.exe

*Yukarıdaki resim de olduğu gibi “New Trace” seçeneğine tıklıyoruz.

Karşınıza authentication seçenekleri gelecektir, bağlanmak istediğiniz server’a ait bilgileri giriniz ve connect butonu ile bağlantıyı gerçekleştiriniz.

*Aşağıdaki fotoğrafta olduğu gibi karşınıza çalıştırılacak olan trace’e ait bir ekran gelecektir. Daha önceden oluşturduğunuz bir trace template varsa “Use the template” seçeneğinden onu seçebilirsiniz.

*Direkt olaran “Run” derseniz Profiler size tüm işlemleri anlık olarak getirmeye başlayacaktır ancak siz bazı işlemleri limitlemek, ihtiyaç duyduğunuz durumları görüntülemek isterseniz “Event Section” isimli sekmeden bazı özellikleri değiştirmelisiniz.

 Genel olarak yukarıdaki seçeneklerden bahsetmem gerekirse;

  • Security Audit : Login ve Logout olan kullanıcıların bilgilerini size teslim edecektir.
  • Sessions : Aktif olan kullanıcıları size teslim edecektir.
  • Stored Procedures : Procedure üzerinden gelen talepleri size iletecektir.
  • TSQL : Insert, Update, Delete, Select işlemlerini size iletecektir.

TextData, ApplicationName, NTUserName, LoginName vs. alanları size yukarıda belirtilen sonuçların içerisinde hangi bilgilerin iletileceğini belirlemektedir.

Bir Not : ApplicationName çok aktif bir sunucu içerisinde doğru verilere ulaşmak amacıyla çok başarılı bir property. SQL Server’a bağlanırken yazdığınız ConnectionString içerisinde App=Tugberk gibi bir app ismi belirtirseniz Profiler üzerinde o uygulama üzerinden gelen sorguları Tugberk isimli app üzerinden gelen sorgular olarak filtrelemeniz mümkün olacaktır.

*Diyelim ki sadece TSQL-Delete işlemlerini takip etmek istiyorsunuz, bu durumda gelen TextData verisinin içerisinde Delete kelimesi geçenler şeklinde bir filtreleme yapabilirsiniz bunun için aşağıdaki yöntemi uygulamanız gerekmektedir.

Tüm sekmeler içerisinde like ve not like seçenğini görebilirsiniz. Like ve not like komutları normal de kullanmış olduğumuz like komutları ile yazılmaktadır. Not like seçeneğinden ise içinde şu komut geçmeyenler şeklinde belirtebilirsiniz.

Run seçeneğini tıklattığımızda ise aşağıdaki gibi bir sonuç elde ederiz.

Kısaca anlatmak gerekirse profiler bu şekilde çalışmaktadır. Performans izlemesi yapmak için; yukarı bölümde bulunan menü bardan performance monitör seçeneği tıklatırsanız izleme işlemine başlayabilir,  trace template oluşturmak ve sürekli aynı yöntemi kullanmak için ise; File sekmesinden Templates bölümünden yeni trace template oluşturabilir, düzenleyebilirsiniz.

Genel olarak kendi kullandığım yöntemleri anlatmaya çalıştım, iyi sorgu izlemeler…