拡張イベントセッションからのパラメーター値の収集


9

アプリケーションで使用されるステートメントをトレースするために、拡張イベントを使用しています。必要な情報を収集するセッションを作成しましたが、使用したパラメーターの実際の値も知りたいと思っています

私はこのトレースを非実稼働環境で実行しており、トレースによるパフォーマンスへの影響は許容されます。

すべてのクエリはHibernateから発信され、次の形式でパラメーター化されています。

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

これは私のセッション設定です。

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)

キャプチャされたステートメントで使用されたパラメーターの実際の値をキャプチャするにはどうすればよいですか?出来ますか?

- 編集(回避策):イベントをrpc_completedに変更すると、Hibernateから呼び出される完全なsqlコマンド(すべてのパラメーター値を含む)が表示されます。その他の場合でも、可能であれば、パラメータ値をキャプチャする方法を知っておくとよいでしょう。


sqlserver.rpc_completedがパラメーター値を含む完全なT-SQLを提供しているかどうかを確認します。
Ivan Stankovic 2014

@IvanStankovic、そう、それは私がそれをしなければならなかった方法です。「編集」の質問で述べたように。
Peter Henell 2014

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.