2011-01-26 11 views
1

誰もがその場でSQL Serverトレースを作成するためのスニペットを持っていますか?私はthisをMSDNで見つけましたが、それはファイルシステムにのみ出力されるようです。それをDBテーブルに記録するか、何らかの種類のUDFを介して返すのはどうでしょうか?理想的には、デバッグツールを作成するために使用されるので、簡単にオンとオフを切り替えることができるものにまとめておくとよいでしょう。プログラムでSQL Serverトレースを作成しますか?

答えて

2

サーバー側のSQLトレース行セットプロバイダーを使用しないのみはファイルシステムをトレースします。

Profilerはテーブルに保存するオプションを提供しますが、行セット出力を消費してサーバーに送信することは非常に非効率です。

あなたは簡単に次のようにかかわらず、これらのサーバー側のトレースにアクセスし、テーブル自身にそれらをロードすることができ

select t.* from 
fn_trace_getinfo(default) i 
cross apply 
sys.fn_trace_gettable(cast(i.value as nvarchar(4000)),DEFAULT) t 
where i.traceid=1 and i.property=2 
+0

行セットプロバイダを使用してトレースを実行することは可能です(スニペットは、以下のデフォルトのトレースの出力を返します) ? – mwjackson

+1

@jacko - 簡単ではありません。プロファイラを使用してプロファイラをトレースして、それが何をしているのかを見ることができますが、出力がどこにでも書かれているとは思いません。しかし、.NETアプリケーションからこれを行うには、 'Microsoft.SqlServer.Management.Trace'名前空間に何かがあるかもしれません。 –

+0

興味深い...ありがとう! – mwjackson

関連する問題