SQL Server’da Extended Events (Genişletilmiş Olaylar), performans izleme, sorun giderme ve sistem davranışını analiz etme amacıyla kullanılan hafif bir izleme mekanizmasıdır. SQL Server 2008’de tanıtılmıştır ve SQL Server’ın izleme altyapısının bir parçası olarak çalışır.
Extended Events’in Temel Özellikleri
- Hafif Yapı: Extended Events, minimum performans etkisiyle veri toplayabilir.
- Esneklik: Birçok olayı ve koşulu izlemek için özelleştirilebilir.
- Detaylı Veri: Hangi olayların ve bunlara bağlı verilerin izleneceğini tam olarak belirleyebilirsiniz.
- Tümleşik Kullanım: Hem T-SQL hem de SQL Server Management Studio (SSMS) arayüzü ile yönetilebilir.
Kullanım Alanları
- Performans İzleme: Yavaş sorgular, kilitlenmeler veya kaynak tüketimi gibi sorunları analiz etmek.
- Sorun Giderme: Belirli bir davranışı tetikleyen işlemleri anlamak.
- Audit (Denetim): Belirli işlemleri veya kullanıcı etkinliklerini kaydetmek.
- Debugging: Kod veya işlem hatalarını izlemek ve düzeltmek.
Nasıl Çalışır?
Extended Events, SQL Server’daki olayları (events) toplar ve bu olaylardan veri yakalar. Bu olaylar, belirli bir koşula göre filtrelenebilir ve bir hedefe (target) gönderilir.
- Olay (Event): İzlenecek olaylar, örneğin “sorgu tamamlandı”.
- Eylem (Action): Olay sırasında toplanacak ek bilgiler, örneğin “sorgunun çalıştırıldığı kullanıcı”.
- Hedef (Target): Verinin yazılacağı yer, örneğin dosya veya bellek.
Aşağıdaki örnek, bir Extended Event oturumu oluşturur ve belirli olayları bir dosyaya kaydeder.
CREATE EVENT SESSION [QueryPerformance]
ON SERVER
ADD EVENT sqlserver.sql_batch_completed
(
ACTION(sqlserver.sql_text, sqlserver.client_hostname)
WHERE sqlserver.database_id = 5
)
ADD TARGET package0.asynchronous_file_target
(
SET filename = ‘C:\ExtendedEvents\QueryPerformance.xel’, max_file_size = 5, max_rollover_files = 3
)
WITH (STARTUP_STATE = ON);
GO
ALTER EVENT SESSION [QueryPerformance] ON SERVER STATE = START;
SSMS Kullanarak Extended Events İzleme
- SSMS’de Management > Extended Events > Sessions bölümüne gidin.
- Sağ tıklayıp New Session Wizard ile yeni bir oturum oluşturun.
- İzlenecek olayları, eylemleri ve hedefleri belirleyin.
- Oturumu başlatın ve sonuçları analiz edin.
Avantajları
- Hafif ve Performans Dostu: Profiler veya Trace’e kıyasla daha az kaynak tüketir.
- Esneklik ve Detaylı İzleme: Karmaşık senaryoları izlemek için kapsamlı yapılandırmalar sağlar.
- Modern ve Geliştirilebilir: SQL Server’ın modern sürümleri için daha iyi destek sunar.
