Makale Özeti

SQL Server Profiler ile sunucu üzerinde gerçekleşen işlemleri takip edebilir bu sayede darboğazların aşılması adına ilk adımı atabiliriz.

Makale

Untitled Document

SQL SERVER PROFILER

Sunucumuzun performansını artırmak, veritabanları üzerinde gerçekleştirdiğimiz işlemlerin performansını artırmak anlamına gelir. Performans hedefinin ilk adımı, düşürücü nedenleri belirlemek ve ortadan kaldırmaktır. Sunucunun en iyi performansta çalışıp çalışmadığını belirlemek için sorgulanması, denetlenmesi gerekir.

SQL Serverın denetimi için çeşitli araçlar vardır. SQL Server Profilerda bu denetleme araçlarından biri. SQL Server Profiler sunucuyu analiz eder ve aktivitesinin kaydını tutar. SQL Serverın olaylarını izlemek ve yakalamak için kullanılır. Kullanıcıya sunucuyu denetleme olanağı sağlar.

SQL Server Profiler sayesinde kullanıcı ve uygulama aktivitelerini, sunucu ve veritabanı aktivitelerini denetleyebiliriz. Aynı zamanda denetleme sırasında ki izlenimleri SQL ifadesi olarak kayıt edebiliriz.

SQL Server Profilerın Seçilme Sebebi?

SQL Server denetimi için birden fazla araç olduğunu söyledik. Bunların arasından Profiler aracının seçilme sebebi aşağıdakiler gibi olabilir:

  • Hangi tür olay olduğunu izleme.
  • Her olayda ne tür bilgiler olduğunu görme.
  • Olayların nasıl gruplandığını görme.
  • Uygulama, kullanıcı, veritabanı ve gibi değerlere filtre uygulanması.
  • İzlenimi trace dosyasında veya veritabanı tablosunda saklama.
  • Index Tuning Wizardda kullanmak için bir yükleme dosyası sağlama.

    SQL Server Profiler ile Yapabileceklerimiz

  • Profiler kullanarak aşağıdaki işlemleri yapabiliriz:

  • SQL Serverın gerçek zamanlı çalışma aktivitesini izleyebiliriz.
  • Uzun süren sorguları tesbit edebiliriz.
  • Kilitlenmeleri yakalayabiliriz.
  • Veritabanı veya kullanıcı başına düşen aktivitenin özeti alınabilir.
  • Hangi veritabanı ağırlık yapıyor, tesbit edilebilir.
  • Veritabanlarının büyüdükleri ve daraldıkları noktalar tesbit edilebilir.
  • SQL Server Profilerda Denetleme Kriterinin Belirlenmesi

    Server üzerinde denetleme yapmadan önce, hangi kriter ile denetleme yapılacağına karar verilir. SQL Server Profilerda da belirlenen bu kritere göre filtreleme işlemi yapılarak SQL Server aktivitesi izlenir.

    Hangi olayların denetleneceği seçilmeli. Denetlenebilecek olaylar şunlardır:

  • Yavaş işleyen sorgular.
  • Uygulamaların ve kullanıcıların yapmış olduğu işlemler.
  • Kullanıcı girişlerindeki başarısızlıklar.
  • Bağlantıda olan kopukluklar.
  • Donanımsal yeterliliğinin sağlanması. CPU kullanımının seviyesini takip etme.

  • Olayları gerçekleştirmek için geçen süre.

  • Örnek Uygulama:

    Bu faydalı analiz aracını başlatmak için Başlat menüsünden, Programlardan Microsoft SQL Server grubundan SQL Server Profilerı seçmeniz gerekir.


    1.Şekil: SQL Server Profilerı başlatma yeri.

    SQL Server Profilerde File -> New -> Trace|Trace Template menüleri takip edilerek yeni bir takip işlemi başlatılabilir.


    2.Şekil: Yeni bir takip işlemi başlatma.

    Bizden bağlanacağımız sunucunun ismini ve şifresini isteyecektir.


    3.Şekil: Sunucuya bağlanma bilgilerinin girilmesi.

    İstenen bilgileri girdiğimizde, yeni bir takip işlemi için gereken ve seçimlik olan bilgileri bizden isteyen bir ileti penceresi ile karşılacağız.


    4.Şekil: Yapılacak olan takibin özellikleri.

    Burada takibin ismini VeritabanıTakip olarak belirliyoruz.

    Save to File seçeneğinden, takip adımlarını hangi dosyaya kaydedeceğini belirliyoruz.


    5.Şekil: Kayıt edilecek yeri gösterme.

    Kayıt edeceği dosya, belirlediğimiz yere standart olarak .trc uzantılı olarak kayıt edilir.

    Save to Table seçeneği ile ise, takip adımlarını belirlediğimiz veritabanı tablosuna kayıt edecektir.

    Diğer alanların varsayılan olarak gelen değerlerini değiştirmeden Run komut düğmesine tıklayarak izleme işlemini başlatıyoruz.

    Takip başladığında, karşımıza çeşitli isimlerde kolonları ve tek bir satırı olan boş bir yapı karşımıza çıkar.


    6.Şekil: Takipin ilk görünümü

    Takibin, sorgunun veya başka bir işlemin adımları kayıt etmesi için ilk önce ortada bir sorgu veya başka bir işlemin icra ediliyor olması gerekir. Tools->QueryAnalyzer menüsünden QueryAnalyzerı başlatalım.


    7.Şekil: QueryAnalyzerın Profilerden başlatılması.

    Query Analyzerda da, SQL Server Profilera bağlandığımız sunucuya bağlanalım.

    Basit bir sorgu cümlesi yazalım. Sorgunun ne yaptığı o kadar da önemli değil. Örneğin;

    USE master
    SELECT * FROM sysusers

    komutunu Query Analyzerda yazalım ve sorguyu çalıştıralım.

    Profilera dönüp baktığımızda, sadece bir satır varken, şimdi satırların artmış olduğunu görüyoruz.


    8.Şekil: Sorgunun Profilerda eklediği satırlar.

    Eklenen satırlara dikkat edersek, yapılan işlemin ne olduğu, hangi araç ile yapıldığı, hangi kullanıcı tarafından yapıldığı, tarihi saati gibi sunucu üzerinde yapılan olaylar hakkında bilgi verir.
    Başlattığımız takip olayını istediğimiz zaman durdurabillir(stop) veya duraklatabiliriz(pause). simgesi aracılığı ile başlatabilir(run), simgesi aracılığı ile durdurabilir(stop), simgesi aracılığı ile duraklatabiliriz (pause).

    Takibin Özelliklerini Ayarlama

    Oluşturmuş olduğumuz takip işleminin File-> Property menüsünü kullanarak özelliklerini değiştirebiliriz.


    9.Şekil: Trace özelliklerini değiştirme menüsü.

    Events sekmesinden, hangi olayların takip etmek istiyorsak onları belirtiriz.


    10.Şekil: Event sekmesi.

    Data Columns sekmesi sayesinde, hangi özellikleri takip etmek istediğimizi bildiririz. Takibi ilk başlattığımızda çeşitli kolonlar ve tek satır gelmişti. İşte o kolonların, yani takip ettiği özelliklerin sayısını artırmak, veya istemediğimiz kolonları kaldırmak için Data Columns sekmesini kullanırız.


    11.Şekil: Data Column sekmesi.

    Filters sekmesinden, istediğimiz özelliği filtreleyerek, işimize yaramayan alanları veya özelliği takip etme yükünden sunucuyu kurtarmış oluruz.


    12.Şekil: Filters sekmesi.

    Bu şekilde takip işlemi gerçekleştirmiş olduk.

    Kayıt Edilen Takiplerin Yararı

    İzleme bilgilerini kayıt edebiliyoruz demiştik. Bu takip ettiğimiz işlemi kayıt etmesi için yer göstermiştik. Bu kayıt ettiğimiz dosylar ne işimize yarayacak? İstediğimiz zaman, bu kayıt edilmiş dosyayı (bu bir veritabanı tablosuda olabiliyordu) tekrar SQL Server Profilerdan açarak, takip işlemini devam ettirebiliriz.

    Sunucuda iyi performans veren bir olay, olay akışı kayıt edildiği için, bu kayıt sayesinde aynı aktivite tekrarlanabilir.

    Sonuç Olarak:

    SQL Server Profiler, SQL Server aktivitelerini izlemek ve bu aktiviteleri dosyaya, veritabanı tablosuna, veya ekrana veren güçlü bir analiz aracıdır. Olayların filtrelerini analiz etmeyi ve en uygununu seçerek onu uygulamayı sağlar.

    SQL Serverın çalışması izlenerek, kaynak kod içinde, SQL Serverın nerelerde tıkandığı tesbit edilerek uygun olmayan kodlar engellenmiş olur.

    Öznur KARAKUŞOĞLU
    SQLNedir?com