問題タブ [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.
sql-server - 拡張イベント ブロック プロセス レポートが sys.dm_xe_objects にありません
次のステートメントを使用して、後で分析するために、SERVER EVENT SESSION を作成して、blocked_process_report & xml_deadlock_report イベントをファイルにキャプチャしようとしています。
このステートメントを実行しようとすると、次のエラーが表示されます。
メッセージ 25623、レベル 16、状態 1、行 1 イベント名「sqlserver.blocked_process_report」が無効であるか、オブジェクトが見つかりません**
sys.dm_xe_objectsの名前順のクエリ
SELECT * FROM sys.dm_xe_objects 名前順。
binary_data から boolean になり、「blocked_process_report」が見つからないため、エラーが発生します。
現在のバージョン: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) 2012 年 6 月 28 日 08:36:30 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) )
この行方不明のイベントに関する質問への参照は他にもありますが、回答はありません。
私は何を間違っていますか?
sql-server - 拡張イベント SQL Server 選択クエリ
単純な select * from table クエリで発生する XEvent はどれですか? 何かをテストしたいのですが、簡単にテストできる XEvent が見つかりません。
sql-server - 拡張イベントを使用して未使用のストアド プロシージャを検索する
私たちのデータベースの 1 つには、3400 を超えるストアド プロシージャと 400 の関数が含まれています。システムは 2009 年より前から存在しており、使用されなくなった多くのプロシージャ/関数があります。未使用のプロシージャを見つけてアーカイブできるようにするというタスクが与えられました。
1つの計画は、テーブルを使用することでしたsys.dm_exec_procedure_stats
1 日に 1 回テーブルをチェックし、1 か月または 1 四半期にわたって集計するジョブを設定できます。
これには 2 つの問題があります。関数をキャッチしないことと、NOCOMPILE でストアド プロシージャをキャッチしないことです。そこで、代わりに拡張イベントを使用することにしました。
これを正確に達成するためのコードが見つからなかったので、他の誰かの時間を節約できる場合に備えて、ここに追加します。
これらの未使用のストアド プロシージャを検出するより良い方法はありますか?
sql-server - SQL Server のログに失敗したクエリ
システム全体のログ記録を実装しようとしています。これにより、失敗したすべてのストアド プロシージャの実行がデータベースに記録され、拡張イベントが表示されます。
私はいくつかの調査を行いましたが、次のコードを使用して失敗したステートメントをキャプチャするのは非常に簡単なようです:
ただし、失敗したステートメントをすぐにテーブルに保存したいので、呼び出しましょうLogs.Errors
が、それを行う方法が見つからず、上のメソッドはスケジュールされたジョブとして機能する必要があります。
現在、手順は次のようになっています。
Logs.LogError
プロシージャが使用してDBCC INPUTBUFFER();
いるが、パラメータをキャプチャせず、実行された正確なプロシージャのみをキャプチャする場所。それは私がそれから得ることができるすべてです:
DBCC INPUTBUFFER()
可能であれば、ステートメント全体を強制的にキャプチャするか、XE でレコードをテーブルに直接挿入することで機能させる方法を探しています。
ご不明な点がございましたら、お知らせください。
c# - C# 特定のデータベースで XEvent セッションのリストを取得する方法
C# でいくつかの単純な拡張イベント管理コードを作成しようとしていますが、それはかなり新しいものです。SSMS で XEvent セッションをセットアップでき、この例を使用して C# で作成されたセッションから Linq ストリームを取得できました
私が今やりたいことは、特定のデータベースにどのセッションが存在するかを照会できるようにすることです。テーブルを手動でクエリしてsys.dm_xe*
、それらのマップされたクラスを作成することもできますが、クラスは既にMicrosoft.SqlServer.Management.XEvent名前空間に存在しているようです。
どのセッションが存在するかを保持する特定のテーブルはsys.dm_xe_sessions
.
サンプルコードやヘルプをいただければ幸いです。ありがとう!
sql - 拡張イベントで同等の Sp_whoisactive
そのため、sp_whoisactive を使用して SQL サーバー上のアクティビティを監視しており、拡張イベントで同様のものを作成する方法を考えていました。イベントの基本的な理解があり、いくつかのイベントを作成しましたが、sp_whoisactive と同じ出力を得るために拡張イベントで監視する値とパラメーターがわかりません。
運が良ければ、他の誰かがこのようなことを以前に試したことがありますか。