1

サーバー側の Profiler トレースを開始するストアド プロシージャを作成しました。もともと、プロファイラーのファイル/エクスポート/スクリプト トレース定義オプションから SQL スクリプトを生成しました。それ以来、私はそれをより親しみやすいものにするために少し修正しました。

スクリプトは次のことを行います。

exec sp_trace_create... -- creates the trace
exec sp_trace_setevent <traceID>, <eventID>, <columnID>, 1... (many of these per event)
exec sp_trace_setfilter...(a few filters)
exec sp_trace_setstatus <traceID>, 1 -- starts the trace

トレースが完了し、トレース ファイルを調べると、トレース列が任意の順序で表示されます。各トレース イベントに追加する列の順序と一致しません。列を別の順序で表示することをお勧めします。

サーバー側のトレースを使用するときに、トレース ファイル内の列の順序を制御する方法はありますか?

当社の製品は SQL Server バージョン 2005 から 2012 で実行されますが、特定のデータベース バージョンを必要とする回答は問題ありません。

また、拡張イベントについては認識していますが、特にサーバー側のプロファイラー トレースに関する回答を探しています。

4

1 に答える 1

1

Aaron Bertrand が指摘したように、トレース ファイルに書き込まれるときに列の順序を制御する方法はありません。

この関数sys.fn_trace_gettableを使用して、トレース データをテーブルに取得し、そこから任意の順序でデータを選択することができます。

サーバー側のトレースでイベントをテーブルに保存することもできます。トレースを作成するときに、トレース プロパティで [テーブルに保存] オプションを選択します。

于 2013-11-14T14:03:45.610 に答える