SQLプロファイラーで使用していたような拡張イベントを使用して、いくつかのT-SQLを調べようとしています。次のイベントセッションがあります。
IF EXISTS (SELECT name FROM sys.dm_xe_sessions WHERE Name = 'PySoup tracing')
BEGIN
DROP EVENT SESSION [PySoup tracing] ON SERVER
END
CREATE EVENT SESSION [PySoup tracing] ON SERVER
ADD EVENT sqlserver.rpc_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sp_statement_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sql_batch_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sql_statement_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text ))
ADD TARGET package0.event_file(SET filename=N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\PySoup tracing.xel')--,
--ADD TARGET package0.ring_buffer(SET max_events_limit=(1000000))
GO
ALTER EVENT SESSION [PySoup tracing] ON SERVER
STATE = START;
ACTION句は、イベントによって返された列をリストすることになっていると思いました。ただし、GUIでイベントデータを表示すると、sqlserver.client_app_name
列が表示されません。
何が悪いのですか?
私は以前にこの問題を見たことがありますが、このタイプのシーケンスがあるとどうなりますか?
GUIは追加された列データを表示しません。ここでのオプションは、ターゲットを直接クエリするか、古いセッション定義のXELファイルをクリア/名前変更することです。
あなたがすでにそれをマークしたので、これはあなたの状況で答えとみなされるというわけではありません。これは、少し試してみた私の見解です。
SQL Server 2012インスタンスとSSMSバージョンを使用して、アプリケーション名イベントを除いたイベントセッションを作成しました。
IF EXISTS (SELECT name FROM sys.dm_xe_sessions WHERE Name = 'PySoup tracing')
BEGIN
DROP EVENT SESSION [PySoup tracing] ON SERVER
END
CREATE EVENT SESSION [PySoup tracing] ON SERVER
ADD EVENT sqlserver.rpc_completed (ACTION(sqlserver.sql_text )),
ADD EVENT sqlserver.sp_statement_completed (ACTION(sqlserver.sql_text )),
ADD EVENT sqlserver.sql_batch_completed (ACTION(sqlserver.sql_text )),
ADD EVENT sqlserver.sql_statement_completed (ACTION(sqlserver.sql_text ))
ADD TARGET package0.event_file(SET filename=N'tracing.xel')--,
--ADD TARGET package0.ring_buffer(SET max_events_limit=(1000000))
GO
ALTER EVENT SESSION [PySoup tracing] ON SERVER
STATE = START;
ライブデータビューアを閉じたり、セッションを停止したりしたことはありません。私はセッションのプロパティに入り、client_app_name
。次に、出力を再度確認しましたが、すぐには反映されませんでしたが、期待どおりにアプリケーション名が表示され始めました。
SQL Server 2012以降では、セッションを停止して開始しなくても、セッションのプロパティを変更できます。そのため、停止/開始に煩わされることなく、フィールドの追加と削除、フィルターの組み込みなどを行うことができます。あなたの場合、これが本当かどうかはわかりませんが、ライブデータビューではディスパッチのレイテンシが変化します。拾うのにしばらく時間がかかったかもしれません。これについては、私の 別の質問への回答 で確認できます。