Collecte de valeurs de paramètres à partir d'une session d'événement étendue

9

J'utilise des événements étendus pour tracer les instructions utilisées par notre application. J'ai créé une session qui collectera les informations que je veux, sauf que je voudrais également connaître les valeurs réelles des paramètres qui ont été utilisés .

J'exécute cette trace sur un environnement de non-production et toute performance atteinte par la trace est acceptable.

Toutes les requêtes proviennent d'Hibernate et ont été paramétrées sous forme de:

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

Ceci est ma configuration de session.

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)

Comment puis-je capturer les valeurs réelles des paramètres utilisés dans les instructions capturées? C'est possible?

- Modifier (solution de contournement): changer l'événement en rpc_completed me donne la commande sql complète (y compris toutes les valeurs de paramètres) appelée depuis Hibernate. Dans d'autres cas, il serait toujours bon de savoir comment capturer les valeurs des paramètres, si cela est possible.

Peter Henell
la source
Vérifiez si sqlserver.rpc_completed fournit T-SQL complet, y compris les valeurs des paramètres.
Ivan Stankovic
@IvanStankovic, oui, c'est ainsi que je devais procéder. Comme mentionné dans la question dans le "Edit".
Peter Henell

Réponses: