Recopilación de valores de parámetros de la sesión de evento extendido

9

Estoy usando eventos extendidos para rastrear las declaraciones utilizadas por nuestra aplicación. He creado una sesión que recopilará la información que deseo, excepto que también me gustaría conocer los valores reales de los parámetros que se utilizaron .

Estoy realizando este seguimiento en un entorno que no es de producción y cualquier rendimiento afectado por el seguimiento es aceptable.

Todas las consultas se originan en Hibernate y se han parametrizado en forma de:

SELECT a, b, c From Customer where CustomerId = @P0

Esta es la configuración de mi sesión.

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)

¿Cómo puedo capturar los valores reales de los parámetros que se usaron en las declaraciones capturadas? ¿Es posible?

- Editar (solución alternativa): cambiar el evento a rpc_completed me da el comando sql completo (incluidos todos los valores de parámetros) llamado desde Hibernate. Para otros casos, aún sería bueno saber cómo capturar los valores de los parámetros, si es posible.

Peter Henell
fuente
Compruebe si sqlserver.rpc_completed proporciona T-SQL completo, incluidos los valores de los parámetros.
Ivan Stankovic
@IvanStankovic, sí, esa es la forma en que tuve que hacerlo. Como se menciona en la pregunta en "Editar".
Peter Henell

Respuestas: