0

Extended Events ilk olarak SQL Server 2008’de tanıtılmasına karşın GUI’ye sahip değildi ve bu nedenle de performans ölçümü için çok fazla tercih edilen bir seçenek değildi. SQL Server 2012 ile kullanışlı bir GUI’ye kavuştu ve SQL Profiler yerine tercih edilebilir hale geldi. Profiler’ın, performans açısından Extended Events’e göre dezavantajları olduğundan,  Microsoft Profiler yerine Extended Events’in kullanılmasını öneriyor. Hatta Profiler şu anda “deprecated feature”lar arasında yer alıyor.  Örnek vermek gerekirse Profiler’da filtreleme yapılsa bile önden filtreleme etkin olmadığı için yoğun çalışan sistemlerde Profiler çalıştırılmaması gerekiyor.


Resim-1

Extended Events ile SQL Server sorgularını takip edebilir, performans analizi yapabilir, deadlock problemlerini çözebilir ve T-SQL statement’larını debug edebilirsiniz.

Extended Events’i Management Studio üzerinde, Managements klasörü altında bulabilirsiniz.


Resim-2

Burada Sessions’a sağ tıklayarak New Session Wizard ile birkaç adımda  “XEvents Test” adında yeni bir Extended Event session’ı oluşturalım.

1. Set Session Properties: Session adı ve Server başlangıcında otomatik olarak başlayıp başlamayacağını belirleyebiliyoruz.


Resim-3

2. Choose Template: Amacımıza uygun template’lerden birini seçebilir, ya da template kullanma seçeneğini işaretleyerek bir sonraki ekranda seçimleri yapabiliriz.


Resim-4

3. Selects Events To Capture: Seçtiğimiz template’i ya da seçmediysek yakalanacak eventleri de bu ekranda düzenleyebiliyoruz. Event Library’den filtreleme de yapılabiliyor.


Resim-5

Bu event’lerin bir kısmına kısaca bakalım.

Execution

rpc_completed: Bir Remote Procedure Call’un tamamlanması
sp_statement_completed: Stored Procedure içerisindeki bir SQL statement’ın tamamlanması
sql_batch_completed: Bir T-SQL batch’in tamamlanması
sql_statement_completed: Bir T-SQL statement’ının tamamlanması

sql_statement_recompile: Bir execution plan’in recompile olması gerektiği durumlar
rpc_starting: Bir stored procedure’ın başlaması
Query_post_compilation_showplan: Bir SQL statement derlendikten sonraki execution plan’ı gösterir.
Query_post_execution_showplan: Bir SQL statement, execution istatistikleri içerecek şekilde çalıştırıldıktan sonraki execution planı gösterir.

Session

login: Kullanıcıların veritabanına bağlantıları (giriş)
logout: Kullanıcıların veritabanına bağlantıları (çıkış)
existing_connection: Session başlamadan önce bağlı olan kullanıcılar

Cursor

cursor_implicit_ conversion: İstenilen tipten farklı bir cursor tipi oluşturulması

Errors

attention: İptal edilen sorgu ya da timeout nedeniyle kopan database bağlantıları
error_reported: Hata bildirimi olduğu zamanlarda oluşur.
execution_warning: Bir sorgu ya da stored procedure çalışırken herhangi bir uyarı olması
hash_warning: Hash işlemi sırasında bir hata olması

Warnings

missing_column_statistics: Optimizer tarafından istenilen istatistik bilgisi olmaması
missing_join_predicate: 2 tabloya join predicate olmadan sorgu çalıştırılması
sort_warnings: Sorgudaki sort işlemi ile ilgili hafıza sorunları olması

Lock

lock_deadlock: Deadlock oluşması
lock_deadlock_chain: Bir sorgu dizisinin deadlock oluşturması
lock_timeout: lock’ın timeout parametresini aşması

Transactions

sql_transaction: Transaction hakkında başlangıç, bitiş ve roll back bilgisi verir.

4. Capture Global Fields: Bütün eventlerde ortak olan alanları buradan ekleyip çıkarmak mümkün.


Resim-6

5. Set Session Event Filters:  Dinlenecek event’lerin belirli parametrelere göre filtreleyebiliyoruz. Template gelen filtrelere ek olarak sadece AdventureWorks2012 veritabanına ait event’leri dinleyelim.


Resim-7

6. Specify Session Data Storage: Analizi daha sonra yapmak istersek, dosya olarak kaydetmemiz mümkün.


Resim-8

7. Summary: Seçeneklerimizin özetini gördükten sonra istersek scriptini de alabiliyoruz.

8. Create Event Session: Son adımda event session’ı oluşturuyoruz.


Resim-9

Event session’ı test etmek için bir sorgu yazıp çalıştıralım. Ekran görüntüsünde göreceğiniz gibi 2 adet event’i yakaladık ve bu event’lerde sorgu ile ilgili bilgileri görebiliyoruz.


Resim-10

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 2
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir