sys.dm_exec_trigger_stats (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース

キャッシュされたトリガーの集計パフォーマンス統計を返します。 このビューには、トリガーごとに 1 行が含まれており、その行の有効期間はトリガーがキャッシュに残っている間です。 つまり、トリガーがキャッシュから削除されると、対応する行もこのビューから削除されます。 その時点で、sys.dm_exec_query_stats と同様にパフォーマンス統計 SQL トレース イベントが発生します。

列名 データ型 説明
database_id int トリガーが存在するデータベースの ID。
object_id int トリガーのオブジェクト ID 番号。
type char(2) 次のいずれかのオブジェクトの種類。

TA = アセンブリ (CLR) トリガー

TR = SQL トリガー
Type_desc nvarchar(60) オブジェクトの種類の説明。

CLR_TRIGGER

SQL_TRIGGER
sql_handle varbinary(64) これを使用すると、このトリガー内から実行された sys.dm_exec_query_stats 内のクエリと関連付けることができます。
plan_handle varbinary(64) インメモリ プランの識別子。 この識別子は一時的なもので、プランがキャッシュに残っている間だけ一定の値になります。 この値は、 sys.dm_exec_cached_plans 動的管理ビューで使用できます。
cached_time datetime トリガーがキャッシュに追加された時刻。
last_execution_time datetime 前回トリガーが実行された時刻。
execution_count bigint トリガーが最後にコンパイルされてから実行された回数。
total_worker_time bigint コンパイル後にこのトリガーの実行で消費された CPU 時間の合計 (マイクロ秒単位)。
last_worker_time bigint トリガーを前回実行したときに使用された CPU 時間 (マイクロ秒単位)。
min_worker_time bigint このトリガーが1回の実行で消費した最大 CPU 時間 (マイクロ秒単位)。
max_worker_time bigint このトリガーが1回の実行で消費した最大 CPU 時間 (マイクロ秒単位)。
total_physical_reads bigint コンパイル後にこのトリガーの実行で行われた物理読み取りの合計数。
last_physical_reads bigint トリガーを前回実行したときに実行された物理読み取りの数。
min_physical_reads bigint このトリガーの1回の実行で行われた物理読み取りの最小数。
max_physical_reads bigint このトリガーの1回の実行で行われた物理読み取りの最大数。
total_logical_writes bigint コンパイル後にこのトリガーの実行によって実行された論理書き込みの合計数。
last_logical_writes bigint トリガーが最後に実行されたときに実行された論理書き込みの数。
min_logical_writes bigint このトリガーの1回の実行で行われた論理書き込みの最小数。
max_logical_writes bigint このトリガーの1回の実行で行われた論理書き込みの最大数。
total_logical_reads bigint コンパイル後にこのトリガーの実行で行われた論理読み取りの合計数。
last_logical_reads bigint トリガーが最後に実行されたときに実行された論理読み取りの数。
min_logical_reads bigint このトリガーの1回の実行で行われた論理読み取りの最小数。
max_logical_reads bigint このトリガーの1回の実行で行われた論理読み取りの最大数。
total_elapsed_time bigint このトリガーの実行完了までの経過時間の合計 (マイクロ秒単位)。
last_elapsed_time bigint このトリガーの前回の実行完了までの経過時間 (マイクロ秒単位)。
min_elapsed_time bigint このトリガーの実行完了までの最小経過時間 (マイクロ秒単位)。
max_elapsed_time bigint このトリガーの実行完了までの最大経過時間 (マイクロ秒単位)。
total_spills bigint コンパイル後にこのトリガーの実行によって書き込まれたページの合計数。

適用対象: CU3 以降 SQL Server 2017 (14.x)
last_spills bigint 最後にトリガーが実行されたときに書き込まれたページの数。

適用対象: CU3 以降 SQL Server 2017 (14.x)
min_spills bigint このトリガーによって1回の実行中に書き込まれたページの最小数。

適用対象: CU3 以降 SQL Server 2017 (14.x)
max_spills bigint このトリガーによって1回の実行中に書き込まれたページの最大数。

適用対象: CU3 以降 SQL Server 2017 (14.x)
total_page_server_reads bigint コンパイル後にこのトリガーの実行によって実行されたページサーバー読み取りの合計数。

適用対象: Azure SQL Database ハイパースケール
last_page_server_reads bigint 最後にトリガーを実行したときに実行されたページサーバーの読み取り回数。

適用対象: Azure SQL Database ハイパースケール
min_page_server_reads bigint このトリガーの1回の実行で行われた、ページサーバーの読み取りの最小数。

適用対象: Azure SQL Database ハイパースケール
max_page_server_reads bigint このトリガーの1回の実行で行われた、ページサーバーの読み取りの最大数。

適用対象: Azure SQL Database ハイパースケール

解説

SQL Database では、動的管理ビューは、データベースの包含に影響する情報を公開することも、ユーザーがアクセスできる他のデータベースに関する情報を公開することもできません。 この情報を公開しないように、接続されたテナントに属していないデータを含むすべての行がフィルターで除外されます。

ビュー内の統計は、クエリが完了したときに更新されます。

アクセス許可

SQL Serverおよび SQL Managed Instance では、 VIEW SERVER STATE 権限が必要です。

SQL Database BasicS0S1 のサービス目標、および エラスティックプール 内のデータベースについては、サーバー管理者アカウント、 Azure Active Directory 管理者アカウント、または ##MS_ServerStateReader## サーバーロールのメンバーシップが必要です。 他のすべての SQL Database サービスの目的では、 VIEW DATABASE STATE データベースに対する権限、または ##MS_ServerStateReader## サーバーロールのメンバーシップが必要です。

次の例では、平均経過時間で識別される上位 5 つのトリガーに関する情報を返します。

SELECT TOP 5 d.object_id, d.database_id, DB_NAME(database_id) AS 'database_name',   
    OBJECT_NAME(object_id, database_id) AS 'trigger_name', d.cached_time,  
    d.last_execution_time, d.total_elapsed_time,   
    d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],   
    d.last_elapsed_time, d.execution_count  
FROM sys.dm_exec_trigger_stats AS d  
ORDER BY [total_worker_time] DESC;  

参照

実行関連の動的管理ビューおよび関数 (SQL)
sys.dm_exec_sql_text (transact-sql SQL)
sys.dm_exec_query_stats (transact-sql SQL)
sys.dm_exec_procedure_stats (transact-sql SQL)
sys.dm_exec_cached_plans (Transact-SQL)