SQL Server 2008 Performance Data Collection

tarafından 2 Ocak 2011 tarihinde Microsoft kategorisine yazıldı.


Performance Data Collection SQL Server 2008 ile gelen bir feature dır. Express sürümü hariç bütün Edition larda bulunmaktadır. Adından da anlaşılacağı üzere DB ler için performance dataları toplamaya ve toplanan bu dataları raporlamaya yarayan bir yapıdır. Özel bir veritabanı data warehouse olarak kullanılmakta ve toplanan datalar bu veritabanına yazılmaktadır. Periyodik(Default u 15 dakika) olarak bilgileri topladığı için geriye dönük olarak belirli bir zaman aralığı için rapor alınabilmektedir. Örneğin Disk Usage Report, Query Report veya server side trace bilgileri raporlanabilmektedir. Konu hakkında özet bir bilgi geçtikten sonra şimdi örneğimizi yapmaya başlayalım. Ben bu örneğimde aşağıdaki adımlar üzerinde duracağım.



Data Warehouse un kurulumu.

 


Windows login in create edilmesi.

 


SQL Agent Service Account ların değiştirilmesi

 


Collection Set lerin ayarlanması

 


Raporların İzlenmesi

 


Data Warehouse Kurulumu



Daha öncede bahsettiğim gibi toplanan datalar ayrı bir veritabanında tutulmaktadır. Bu veritabanı verinin toplandığı server ın üzerinde olabileceği gibi başka bir server da da bulunabilmektedir. Biz yapımızı geniş kapsamlı düşüneceğiz. Örneğin sisteminizde ki bütün server lardan veri toplayıp farklı bir serverdaki datawarehouse a yazdığımızı düşünelim.


Örneğimizde S10Ent instance ından verileri toplayıp TS2008_1 instance ında ki datawarehouse a yazacağız.


image001


TS2008_1 instance ındaki datewarehouse kurulumuna geçelim.


Management >> Data Collection a sağ tıklayıp Configure Management Datawarehouse yazısını tıklayalım ve çıkan ekrana next diyerek bir sonraki ekrana geçelim.


Gelen ekranda Create or upgrade a management data warehouse seçeneği seçerek next e basalım.


image002


Gelen ekranda new butonuna basarak create edeceğimiz data warehouse için bir isim girelim. Örneğin DataCollectionDW ismini kullanalım ve OK e basarak bir önceki ekrana geçelim.


image003


Bu ekranda Next e basarak user seçimini yapacağımız ekrana geçelim.


image004


Bu ekranda NT AUTHORITY\SYSTEM account unu seçip next e basalım. Siz diğer hesaplardan kullanacaklarınızı da seçebilirsiniz.


Finish e basarak işlemi sonlandıralım.


TS2008_1 instance de data warehouse hazırlıkları tamamlanmış oldu.


image005



Windows Login Create Edilmesi

 




Farklı serverlardan veri toplayıp bunları tek bir data warehouse server ına yazacağımız için SQL Server Agent service account u olarak kullanmak üzere bir windows yada domain account u oluşturmanızı tavsiye ederim.


Oluşturacağınız bu account administrator haklarına sahip olursa ekstra bir ayar yapmanıza gerek kalmayacaktır. Ama administrator olmaz ise Logon Account as a Service e bu account ın her data toplanan server için eklenmesi gerekmektedir. Ayrıca her server da açılan, collect edilen dataların tutuldukları folder larda bu account un yetkilendirilmesi gerekmektedir.


Biz bu örneğimizde administrator haklarına sahip bir windows user kullanacağız. UserDataCollect isimli bir windows user create ederek bir sonraki adıma geçiyoruz.


SQL Agent Service Account ların Değiştirilmesi

 




Bir önceki adımda dediğim gibi SQL Server Service account ların yeni tanımladığımız windows user olan UserDataCollect ile değiştireceğiz.


Bunun için SQL Server Configuration Manager daki S10Ent ve TS2008_1 instance larında ki SQL Server Agent service lerinde değişiklik yapacağız.


SQL Server Configuration Manager ı açıyoruz ve değiştirmek istediğimiz service ın üzerine sağ tık yapıp properties ekranına geçiyoruz.


image006


Gelen ekranı resimde görüldüğü gibi düzenliyoruz yani service account olarak UserDataCollect windows account unu kullanıyoruz.


image007


Aynı işlemi diğer service ya da servis ler içinde yapıyoruz. Dediğim gibi bütün data toplanacak server ların agent larında ve data warehouse un olduğu server ın agent ında bu service account değişikliğini yapmamız gerekmekte.


Ayrıca bu windows user ı server larda sysAdmin yapmanızda gerekecektir. Bu noktaya da dikkat etmenizi öneririm.


Collection Setlerin Ayarlanması

 



Artık Data toplanacak server larda tanımlamaları yapma vakti geldi.


Bunun için data toplanacak server da(S10ENT instance ı) Management >> Data Collection a sağ tıklayıp Configure Management Data Warehouse yazısını tıklayalım.


image008


Gelen ekrana next diyelim ve bir sonraki ekrana geçelim. Bu ekranda bu sefer Set up Data Collection yazısını seçeceğiz. Çünkü artık data toplama ayarlarını yapmaya başlıyoruz.


image009


Next e basarak bir sonraki ekrana geçelim. Bu ekranda Data Warehouse için ayarladığımız server için bilgiler gireceğiz.ServerName ve Database name seçimini yapalım. Bu bilgiler Data Warehouse un bulunduğu server ve DB adı. Yani bizim örneğimiz için TS2008_1 instance ında DataCollectionDW database i.


Cache Directory kısmında da toplanan verilen yazılması için bir folder seçeceğiz. Bu folder data toplanan server da yani S10ENT instance ının çalıştığı serverda olacak.


C:\ de yeni bir klasör açalım. DataCollectTemp adını verelim ve Cache Directory kısmına C:\DataCollectTemp yazıp next e basalım.


Bilgileri doldurduktan sonra ekran aşağıdaki ekrana benzer olacaktır.


image010


Not: Daha öncede söylediğim gibi; eğer SQL Server Agent Service Account u olarak bir administrator account u kullanmazsanız, bu account u bu folder ı yetkilendirmeniz gerekmektedir.


Finish e basarak işlemi sonlandıralım.


İşlem tamamlandıktan sonra Data Collection altında aşağıda ki resimde görüldüğü gibi Data Collection Set ler oluşacaktır.


image011


Aynı zamanda Data Collection setler için oluşan jobları SQL Server Agent >> Jobs un altında görebilirsiniz.


Raporların İzlenmesi

 




Dediğimiz gibi Data Collector default olarak 15 dakikada bir server dan bilgileri toplayacak ve data warehouse a yazacaktır. Peki biz bu bilgileri nasıl raporlayacağız.


Bunun için Data toplanan server da (S10ENT) Management >> Data Collection >> Sağ Tık >> Reports >> Management Data Warehouse kısmından istediğimiz report u seçebiliriz.


image012


Disk Usage Report

 



Örneğin Disk Usage Report a bakalım. Management >> Data Collection >> Sağ Tık >> Reports >> Management Data Warehouse >> Disk Usage Report u tıklayalım.


Gelen rapor da server da bulunan DB lerin disk tekapladıkları alanların detayı görülmekte.


Database bazında, data file için başlangıç boyutu, büyüme trend i, şu anki boyutu ve günlük büyüme değerlerini görebiliriz. Aynı değerleri log file ların içinde alabiliriz.


image013


Bu raporda AdventureWorks DB sine tıklayalım. Gelen raporda AdventureWorks DB sinin data ve log file larının hangi bileşenlerden oluştuğu görülmekte.


image014


Aynı raporda Data/Log Files Autogrow/Autoshrink Events kısmına dikkatinizi çekmek istiyorum. Bu kısım data ve log file larının auto growth olduğu zamanları ve ne kadar sürdüğünü göstermekte. Eğer çok sık auto growth oluyorsa auto growth değerini performans amaçlı büyütmekte fayda var. bu işlemin nasıl yapıldığı Database ve Database File lar makalemizde inceleyeceğiz.



 



Server Activity Report

 



Bu raporda ise Server ın aktivitelerini görüyoruz. CPU, Memory, Disk ve Network kullanım grafikleri ile beraber beklemelerin nereden kaynaklandığını tarih aralığı vererek raporlayabiliriz.


image015


 


Query Statistics History

 



Son olarak Query İstatistik Tarihçesi raporuna bakalım. Bu rapor vasıtasıyla da CPU, Duration, Total I/O, Physical Reads, Logical Writes bazından bize en pahalı 10 query i görebiliriz.


image016


Özetle ; Data Collection SQL Server 2008 ile gelen güzel özelliklerden biri. Server lardaki aktiviteleri raporlayabilir ve performans sıkıntıları çözümünde kullanabiliriz.

email

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur.Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2015, VCP5, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.