Sto usando eventi estesi per tracciare le dichiarazioni utilizzate dalla nostra applicazione. Ho creato una sessione che raccoglierà le informazioni che desidero, tranne per il fatto che vorrei anche conoscere i valori effettivi dei parametri utilizzati .
Sto eseguendo questa traccia su un ambiente non di produzione e qualsiasi prestazione colpita dalla traccia è accettabile.
Tutte le query provengono da Hibernate e sono state parametrizzate sotto forma di:
SELECT a, b, c From Customer where CustomerId = @P0
Questa è la mia configurazione della sessione.
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)
Come posso acquisire i valori effettivi dei parametri utilizzati nelle istruzioni acquisite? È possibile?
- Modifica (soluzione alternativa): la modifica dell'evento in rpc_completed mi dà il comando sql completo (inclusi tutti i valori dei parametri) chiamato da Hibernate. Per altri casi sarebbe comunque utile sapere come acquisire i valori dei parametri, se possibile.