9

Profiler を実行する以外に、SQL Server に送信されるすべての SQL ステートメントをキャプチャするためのオプションを提案できる人はいますか? 私はそれを行ういくつかの方法を認識していますが、既存の DM ビューなど、何かを見落としていないことを確認したいと考えています.

どうもありがとう。

4

5 に答える 5

13

SQL Server 2008 の拡張イベント。これらはあまり使用されていないようです。おそらく UI サポートがないためですが、SQL トレースよりも柔軟です (より多くのイベントとより優れたフィルタリングの可能性) より軽量です (より優れたフィルタリングと、ブロックではなくイベントをドロップする可能性による)

構文の例を以下に示します。ただし、それよりも多くのイベント、アクション、述語、および出力ターゲットの可能性があります。

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='test_trace')
DROP EVENT SESSION [test_trace] ON SERVER;
CREATE EVENT SESSION [test_trace]
ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
     ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text)
     )
,
ADD EVENT sqlserver.sp_statement_completed(
     ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text)
     )
ADD TARGET package0.asynchronous_file_target
(set filename = 'c:\temp\test_trace.xel' , metadatafile = 'c:\temp\test_trace.xem')
ALTER EVENT SESSION [test_trace] ON SERVER STATE = START

そして、結果を確認するには

SELECT CONVERT (XML, event_data) AS data
        FROM sys.fn_xe_file_target_read_file ('C:\Temp\test_trace*.xel',
         'C:\Temp\test_trace*.xem', NULL, NULL)
于 2010-07-28T14:34:03.380 に答える
1

Profiler の問題が、使いたくないということではなく、使えないということであれば、Profiler for Microsoft SQL Server 2005/2008 Express Edition を使用できます。無料でオープン ソースです。

于 2010-07-28T13:42:41.020 に答える
1

あなたの選択肢は

実行時間の長いクエリなどの情報を収集する DMV もありますが、すべてを提供するものはないと思います。

于 2010-07-28T13:40:10.317 に答える
1

トレースを使用して、プログラムで出力をキャプチャできます。プログラムで SQL Server 2005 からプロファイラー イベントを (リアルタイムで) 受信する

于 2010-07-28T13:47:49.767 に答える
0

本書「Inside Microsoft SQL Server 2008 T-SQL Programming」には、Greg Low によって書かれた素晴らしい章があり、SQL Server 2008 のすべてのログ記録オプションと監査オプションについて説明しています。それぞれの長所と短所。そうは言っても、あなたがしたことはおそらく最善です。

于 2010-12-02T00:15:41.177 に答える