Makale Özeti

SQL Server'ımızın çoğu zaman yeteneklerinden konuştuk ama bu sefer bu yetenekleri daha ileriye götüreceğimiz ve SQL Server da yaşana olayları izleyeceğimiz SQL Profiler aracının kullanımını inceledik.

Makale

Merhabalar,

Bu makalemde sizlere MSSQL Server 2000 veritabanı yönetimi sistemi içerisinde artık iyi işler yapabildiğimizin farkına vardık ama ya daha iyisini istiyorsak.O nedenle yapabileceklerimizin bitmediğini düşünüyoruz ve SQL Server'dan daha iyi bir performans elde edebilmek hali hazırdaki sorgulamızın durumunu sorgulama ve izlemek için SQL Profiler aracından nasıl faydalanacağımızı bir örnek uygulama ile anlatacağım .

Eğer SQL Server'ın yapabilecekleri dışında daha fazla yeteneğe sahip olmasını istiyorsanız Microsoft'un sql server ile birlikte bize verdiği grafiksel bir araç olan SQL Profiler'ı ayarlamak ve konfigüre etmeliyiz.Bu araçla SQL Server üzerinde gerçekleşen onlarca olayın performansını izler ve potansiyel yaşanan sıkıntıları görüntüler ve bize bilgi verecek bir veritabanı içerisinde tablo veya trace file 'ı oluşturmaya yarar.

Şimdi Senaryo gereği SQL Server içerisinde bulunan Northwind veritabanı için SQL Profiler aracı ile veritabanında yaşananları gözlemleyeceğiz.

SQL Profiler aracını anlatmadan önce sql server'da performans elde etmek veya genel performans tanımının nasıl yapılacağını inceleyelim.Performans metodolojisinde performans çalışmasını uygulamanın çalışmasına başlangıcından süregelen zaman zarfında yapılmalıdır .Burada söylenecek en önemli iki şey 1- Problem Tanımı ve 2-Historical Data.


Performansta söylenecek en önemli durumlardan biri mümkün mertebe amaca yönelik dataların sorgulanması ve performansın amacı Disk I/O düşürmek,Network trafiğini azaltmak,Cpu time düşürmek(Yoğunluğu izlemek)

Performans stratejilerinde söylenecek genel tanımlar:

1-Ekstra Hardware Çözümleri
2-SQL Server konfigürasyon parametreleriyle ölçülen durumlar(sp_configure)
3-Database Tune ile veritabanı design ve index optimization
4-Client Application Tune



Start>>>Programs>>>SQL Server>>>SQL Profiler diyerek performans objeleriyle birlikte izleyeceğimiz ekranı karşımıza geliyor ve yeni bir iz bilgisi yaratmak için sağdaki resimdeki gibi New Trace diyerek karşımıza dialog penceresini açıyoruz.

New Trace dedikten sonra üzerinde hangi performans objelerini konuşturacağımız ve birtakım özelliklerini ayarlayacağımız SQL Server'ımızı seçiyoruz.Örnek uygulamam için ben kendi local(.) olan SQL Server'ı Windows Autehentication şeklinde harekete geçiriyorum.
Trace Properties ile General tabında ise benim için izleyecek olduğum SQL Server'ım ile ilgili bilgileri nerede ve nasıl tutacağım ilgili detaylar ilişkilendirilir.Burada ben trace bilgilerimi .trc uzantılı bir dosyadada izeleyebilirim veya SQL Server içerisinde herhangi bir veritabanı içerisinde tablo olarak ta tutabilirim.Örnek uygulama için Demo isimli bir veritabanı içerisinde Trace isimli bir table'da tutuyorum.En altta görebileceğiniz önemli bir durum var Enable Stop Time özelliği burada söylenecek en önemli söz ise SQL Profiler 7/24 çalıştırılacak olan bir araç değildir.SQL Profiler'ın 7/24 çalıştırılması demek sql server üzerind egerçekten bir yüke sebep olacaktır.Bunun için SQL Profiler'ın otomatik başlatılması gibi bir durum söz konusu olmayacağı için Profiler'ın otomatik durdurulması gibi bir seçenek sözkonusudur.Manuel bir durdurma işlemide yapılacak durumlar arasındadır.SQL Server üzerinde performans namına yapılacak işlemler arasında SQL Profiler'ı sürekli olarak açık tutarak bir sonuç alınamayacaktır.Bunun için yapılması gereken işlem belirli zaman dilimleri belirleyerek bu süreler içerisinde baseline oluşturarak istatistiki bir durum belirlemek olmalıdır temel amaç.


Event tabında ise artık hangi SQL Server'a bağlanacağımızı nerede tutacağımızı söyledikten sonra Profiler ile birlikte hangi olayları gözeteceğimizi belirliyoruz sol taraftaki seçtiğimiz olayları sağ taraftaki seçilenler arasına atıyoruz ve SQL Server'ımızın hangi durumlarda nasıl cevaplar vereceğini izlemek için yol alıyoruz.



Data Columns tabında ise Profiler'ın bize verceği cevapların hangi kolonlar halinde göruntlenmesini belirleyeceğiz.Bunlardan örnek olarak DBName ve DBUserName gibi datacolumnlarını seçiyoruz ve Demo veritabanında yaratılacak olan Trace isimli tablo içindeki kolon isimlerini belirliyoruz. .



En son trace ile ilgili belirlemelerin yapılacağı ekranı olan Filters tabında ise ısrarla söylemek istediğim durum olan sql server içerisinde kullanılan PRofiler aracının sıklıkla çalıştırılmasının performans ölçülecek durumun aksine ek yük getirecektir.Bunun için tüm SQL Server üzerinde gerçekleşecek olaylar yerine sadece Master veritabanı içerisindeki sysdatabases tablosundaki DBID 6 olan yani Northwind veritabanını işaret ederek sadece Northwind veritabanı içerisinde gerçekleşecek olan olayları gözlemliyoruz .





Gerekli düzenlemeleri yerine getirdikten sonra yapılacak olan şey artık SQL SERVER üzerinde gerçekleşecek olan olayları izlemek bunun içinde Run diyerek SQL Server hareketlerini gözlemliyoruz ve kendimize uygun bir zamanda manuel olarak stop diyerek izlemeyi sona erdiriyoruz.




Şekildede görüleceği üzere Demo veritabanı içerisindeki Trace isimli tablonun oluştuğunu göreceğiz.


Trace tablomuzun içeriginde Datacolumns larıyla belirlediğimiz alanların oldugunu şekilden gözlemliyoruz .



Bu makalemde sizlerle MSSQL içerisinde kullanılan SQL Profiler 'tan bahsetmeye çalıştım. Bu çalışma makaleye örnek teşkil ettiği ve öğrenme amaçlı olduğundan hata testleri ve hata yakalama fonksiyonları yazılmamıştır.

Soner Yaşar (soner.yasar@netron.com.tr
)