Uygulamamız tarafından kullanılan ifadeleri izlemek için genişletilmiş olaylar kullanıyorum. Ben de kullanılan parametrelerin gerçek değerlerini bilmek istiyorum dışında, istediğim bilgileri toplayacak bir oturum oluşturduk .
Bu izi üretim dışı bir ortamda gerçekleştiriyorum ve izin isabet ettiği herhangi bir performans kabul edilebilir.
Tüm sorgular Hazırda Bekletme kaynaklıdır ve şu şekilde parametrelendirilmiştir:
SELECT a, b, c From Customer where CustomerId = @P0
Bu benim oturum kurulumum.
CREATE EVENT SESSION [TracingForStatements] ON SERVER
ADD EVENT sqlserver.sp_statement_completed (
ACTION (
sqlserver.session_id,
package0.collect_system_time,
sqlserver.transaction_id,
package0.event_sequence
)
WHERE (
sqlserver.database_id=555
)
)
ADD TARGET package0.ring_buffer(SET max_memory= 128000)
WITH (EVENT_RETENTION_MODE = NO_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 1 SECONDS)
Yakalanan ifadelerde kullanılan parametrelerin gerçek değerlerini nasıl yakalayabilirim? Mümkün mü?
- Düzenle (Geçici Çözüm): Etkinliğin rpc_completed olarak değiştirilmesi, Hazırda Bekletme denilen tam sql komutunu (tüm parametre değerleri dahil) verir. Diğer durumlarda, mümkünse parametre değerlerini nasıl yakalayacağınızı bilmek yine de iyi olacaktır.