1

完全なエンド ツー エンドのトレース シナリオで拡張イベントを使用することを検討しています。特定のアクティビティのイベント実行シーケンスを追跡するのに役立つ XEvent のアクティビティ ID に特に関心があります。

ご想像のとおり、SQL Server 2008 のイベント セッションには次のオプション セットがあります。

TRACK_CAUSALITY = オン

私の質問は、C# コード (Linq、Entity Framework など) から SQL クエリを実行するときに、SQL Server の拡張イベントによってトレースされるアクティビティ ID を推測することは可能ですか?

たとえば、XEvent トレースのために、実行中のスレッドの CorrelationManager.ActivityId GUID を SQL Server に伝達できるようにしたいと考えています。

どうもありがとう

4

1 に答える 1

2

拡張イベントは、現在、SQL Server 以外のアクティビティ ID を追跡しません。TRACK_CAUSALITY は、SQL Server のどのイベントが SQL Server の別のイベントにつながるかを追跡するためだけのものです。 PAGEIOLATCH_SH の wait_info イベントは、同じ activity_id と 3 の seq を持つことになり、action_id の最終的な seq 番号で sql_statement_completed に到達するまで続きます。拡張イベントに関する私のブログ投稿には、これを示す多くの例があります。

http://sqlskills.com/blogs/jonathan/category/Extended-Events.aspx

データを ETW ターゲットにダンプした場合、それをアプリケーションの ETW トレースとマージして、発生に基づいてイベントの緩やかな相関関係を引き出すことができますが、2 つの間の因果関係の追跡が可能です。

于 2011-09-28T15:21:46.030 に答える