Raccolta dei valori dei parametri dalla sessione di eventi estesa


9

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.


Controllare se sqlserver.rpc_completed fornisce T-SQL completo, inclusi i valori dei parametri.
Ivan Stankovic,

@IvanStankovic, sì, è così che ho dovuto farlo. Come menzionato nella domanda in "Modifica".
Peter Henell,

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.