問題タブ [extended-events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
12653 参照

sql - テーブルに影響を与えた SQL をログに記録するトリガーを作成しますか?

列の値を更新しているものを見つけようとしていますが、アプリケーションに関する知識がほとんどありません。一目見ただけで、アプリケーションのビジネス ロジックの約 90% がデータベースで処理されていることがわかりました。言うまでもなく、SP、機能、およびトリガーの深さはクレイジーです。

問題のテーブルに、テーブルに影響を与えた SQL をログに記録するトリガーを作成したいと思います。更新中のテーブルのコンテキストで実行された SQL を取得するために使用できる SQL はどれですか?

詳細: MS SQL Server 2008

ありがとう!!

0 投票する
5 に答える
14721 参照

sql-server - SQL Server 2008 - サーバーにヒットするすべての SQL ステートメントのキャプチャ

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

どうもありがとう。

0 投票する
1 に答える
515 参照

c# - SQL の監視と介入

SQL Server に監視を追加する方法に関する情報を提供してくれた別のスレッドから...

コレクションのようなクエリを使用した EntityFramework からの SQL を参照してください。

これはうまくいきますが、さらに一歩進めたいと思います。トランザクションが発生しているときに、ログにコメントを追加できるようにしたいと考えています。

ただし、SQL ロギングに入るコメントを書き込めるようにしたいと考えています。たとえば、クエリを実行して Debugger.Logger.Write("Some kind of comment") を呼び出すと、何が何であるかがわかります。私は SQL をよく知らないので、何がどこで実行されているのか理解しようとしています。

どんな助けでも大歓迎です。コメントをクエリ ストリームに「挿入」するには、別の SQL クエリを実行する必要があると思います。

データ コンテキスト (DbContext) を設計する

次に、Debugger クラス..

基本的に、次のSQLをC#のリソースに挿入しました...

これが「Project.SQL.Record」です。

次に、「Project.SQL.Review」という別のものがあります。

私の最初の考えは、このような方法を作ることでした..

クエリのようにコメントを実行し、レビューに表示する必要がありますよね? まあ、それはうまくいきませんでした。だから私は他のアイデアにオープンです...

0 投票する
1 に答える
1755 参照

sql-server-2008 - 影響を受けるテーブルで拡張イベントをフィルタリングしますか?

SQL Server 2008で拡張イベントを使用して、監視を実行しています。私は主に次のイベントに興味があります。

  • sqlserver.sp_statement_completed
  • sqlserver.sp_statement_starting
  • sqlserver.sql_statement_completed
  • sqlserver.sql_statement_starting

影響を受けるテーブルに従って、これらの拡張イベントを除外できるかどうかを知りたいです。このようなフィルタリングを実行するのに役立つ述語は見たことがありません。単一のストアドプロシージャが実際に複数のテーブルに影響を与える可能性があるため、それらがどのように機能するかさえわかりませんが、誰かが巧妙なトリックを考えた可能性があります。

前もって感謝します!

0 投票する
1 に答える
1380 参照

sql-server-2008 - C#からSQL Server拡張イベントアクティビティIDを渡すには?

完全なエンド ツー エンドのトレース シナリオで拡張イベントを使用することを検討しています。特定のアクティビティのイベント実行シーケンスを追跡するのに役立つ XEvent のアクティビティ ID に特に関心があります。

ご想像のとおり、SQL Server 2008 のイベント セッションには次のオプション セットがあります。

TRACK_CAUSALITY = オン

私の質問は、C# コード (Linq、Entity Framework など) から SQL クエリを実行するときに、SQL Server の拡張イベントによってトレースされるアクティビティ ID を推測することは可能ですか?

たとえば、XEvent トレースのために、実行中のスレッドの CorrelationManager.ActivityId GUID を SQL Server に伝達できるようにしたいと考えています。

どうもありがとう

0 投票する
1 に答える
1833 参照

sql-server - SQL Serverのlocks_lock_timeouts_greater_than_0イベントから所有者とロックされたオブジェクトを取得する方法は?

locks_lock_timeouts_greater_than_0SQL Server で拡張イベントを使用してイベントをキャプチャしています。イベントセッションは次のとおりです。

ロックされているオブジェクトと、現在それをロックしているユーザーを特定するにはどうすればよいですか?

更新: SQL Server 2008 にはこれが必要です。2012 年より前のバージョンでロック タイムアウトをデバッグするにはどうすればよいですか?

0 投票する
1 に答える
527 参照

sql-server-2012 - SQLServer2012拡張イベントwait_infoと2008R2

2012年にEEで遊び始めたばかりで、2012年にはうまく機能しなかったが、2008R2では問題なく機能したデモを実行していました。デモは待機統計のトレースに関するものでしたが、バージョン間で使用可能なデータ列の違いが原因で失敗しました。

2008 R2では、上記で、、、、、、、wait_typeおよびopcodedurationトレースがmax_duration可能total_durationです。signal_durationcompleted_count

2012年に私が見ることができるのは、、、wait_typeおよびです。opcodedurationsignal_duration

ここでは重要なことは何もありません。自分の道を見つけるだけですが、それらの列が実際に新しいバージョンから削除されたのかどうか、そしてその理由を理解しようとしています(それをサポートするドキュメントは見つかりません)。

0 投票する
1 に答える
682 参照

sql-server-2008 - SQL Server 拡張イベントには新しいイベントがありません

system_health セッションを照会していますが、すべてのイベントが返されていないことに気付きました。今日は間違いなくデッドロックはほとんどありませんでしたが、これらは出力に含まれていません。

この接続ファイリングに遭遇しましたが、コメントから、問題は SQL Server 2008 SP2 で対処されています。しかし、私のバージョンは SQL Server 2008 SP3 Standard です。ここにいくつかの詳細があります。

これはバグですか、それともクエリが間違っていますか?

0 投票する
2 に答える
249 参照

sql-server - 拡張イベントのセッション定義はどこに保存されますか?

それはmsdb、リソース、マスター、またはローカルですか?XEを実行するローカルデータベースをバックアップする場合、セッションもバックアップしますか?システムテーブルにもメタデータが保存されていますか?皆さん、ありがとうございました。

0 投票する
1 に答える
733 参照

sql-server - 拡張イベント - 特定のアプリケーション名に接続するサーバーのヒストグラムを作成しますか?

どの内部アプリ (アプリ名がないため、.Net SQLClient データ プロバイダーとして表示される) が特定のサーバーにヒットしているかを調べるために、XE を構築しようとしています。理想的には、 Client と Database の名前を取得したいのですが、1 つの XE でそれを実行できるかどうかはわかりません。

使いやすさを考慮して、ヒストグラム/非同期バケタイザーを使用し、ヒットしようとしているものとその頻度のカウントを保存します。ただし、2008年よりもはるかに少ない2012年には機能しないようです。sqlserver.existing_connectionを使用すると機能しますが、接続時にのみカウントされます。日中にカウントを取得し、各サーバーから発生する頻度を確認したいので、preconnect_completed を試しました。これは正しいイベントですか?

また、私が XE を使用している理由の 1 つは、それらのサーバーが 1 分間に数千の呼び出しを受信できることです。

これは私がこれまでに思いついたことです。これは機能しますが、一致する現在の SSMS 接続しか提供しません。明らかに、それを .Net SQLClient Data Provider に変更します。