Profiler を実行する以外に、SQL Server に送信されるすべての SQL ステートメントをキャプチャするためのオプションを提案できる人はいますか? 私はそれを行ういくつかの方法を認識していますが、既存の DM ビューなど、何かを見落としていないことを確認したいと考えています.
どうもありがとう。
Profiler を実行する以外に、SQL Server に送信されるすべての SQL ステートメントをキャプチャするためのオプションを提案できる人はいますか? 私はそれを行ういくつかの方法を認識していますが、既存の DM ビューなど、何かを見落としていないことを確認したいと考えています.
どうもありがとう。
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)
Profiler の問題が、使いたくないということではなく、使えないということであれば、Profiler for Microsoft SQL Server 2005/2008 Express Edition を使用できます。無料でオープン ソースです。
トレースを使用して、プログラムで出力をキャプチャできます。プログラムで SQL Server 2005 からプロファイラー イベントを (リアルタイムで) 受信する
本書「Inside Microsoft SQL Server 2008 T-SQL Programming」には、Greg Low によって書かれた素晴らしい章があり、SQL Server 2008 のすべてのログ記録オプションと監査オプションについて説明しています。それぞれの長所と短所。そうは言っても、あなたがしたことはおそらく最善です。