sys.dm_external_script_execution_stats

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Managed Instance

外部スクリプト要求の種類ごとに 1 つの行を返します。 外部スクリプト要求は、サポートされている外部スクリプト言語でグループ化されます。 登録済みの外部スクリプト関数ごとに 1 行が生成されます。 などの rxExec親プロセスによって送信されない限り、任意の外部スクリプト関数は記録されません。

Note

この動的管理ビュー (DMV) は、外部スクリプト実行をサポートする機能をインストールして有効にした場合にのみ使用できます。 詳細については、SQL Server 2016 の R ServicesSQL Server 2017 以降の Machine Learning Services (R、Python)Machine Learning Services のAzure SQL Managed Instanceに関するページを参照してください。

列名 データ型 説明
language nvarchar 登録されている外部スクリプト言語の名前です。 各外部スクリプトは、スクリプト要求で言語を指定して、関連付けられているランチャーを開始する必要があります。
counter_name nvarchar 登録されている外部スクリプト関数の名前です。 Null 許容ではありません。
counter_value integer 登録されている外部スクリプト関数がサーバーで呼び出されたインスタンスの合計数です。 この値は累積的で、機能がインスタンスにインストールされた時刻から始まり、リセットできません。

アクセス許可

SQL Server 2019 (15.x) 以前のバージョンでは、サーバーに対する VIEW SERVER STATE 権限が必要です。

SQL Server 2022 (16.x) 以降のバージョンでは、サーバーに対する VIEW SERVER PERFORMANCE STATE 権限が必要です。

外部スクリプトを実行するユーザーには、追加のアクセス許可 EXECUTE ANY EXTERNAL SCRIPT が必要です。 ただし、この DMV は、このアクセス許可なしで管理者が使用できます。

注釈

この DMV は、SQL Serverで提供される新しい外部スクリプト実行機能の全体的な使用状況を監視するために、内部テレメトリ用に提供されます。 登録されている外部スクリプト関数が呼び出されるたびにスタート パッドがディスクベースのカウンターを増分すると、テレメトリ サービスが開始します。

一般に、パフォーマンス カウンターは、それを生成したプロセスがアクティブな間だけ有効です。 そのため、DMV のクエリでは、実行が停止したサービスの詳細なデータを表示できません。 たとえば、ランチャーが外部スクリプトを実行しても、それらを迅速に完了した場合、従来の DMV ではデータが表示されない可能性があります。

そのため、この DMV によって追跡されるカウンターは実行され続け、インスタンスがシャットダウンされた場合でも、 の sys.dm_external_script_requests 状態はディスクへの書き込みを使用して保持されます。

カウンター値

SQL Server 2016 (13.x) では、サポートされている外部言語は R のみです。外部スクリプト要求は R Services (データベース内) によって処理されます。 SQL Server 2017 (14.x) 以降のバージョンおよび Azure SQL Managed Instance では、R と Python の両方が外部言語でサポートされ、外部スクリプト要求は Machine Learning Services によって処理されます。

R の場合、この DMV はインスタンスで行われた R 呼び出しの数を追跡します。 たとえば、 が呼び出され、並列で実行される場合 rxLinMod 、カウンターは 1 ずつインクリメントされます。

R 言語の場合、 counter_name フィールドに表示されるカウンターの値は、登録されている ScaleR 関数の名前を表します。 counter_value フィールドの値は、特定の ScaleR 関数を呼び出したインスタンスの累積数を表します。

Python の場合、この DMV はインスタンスで行われた Python 呼び出しの数を追跡します。

カウントは、機能がインスタンスにインストールされて有効になったときに開始され、状態を維持するファイルが管理者によって削除または上書きされるまで累積されます。 そのため、通常、 counter_valueの値をリセットすることはできません。 セッション、カレンダーの時間、またはその他の間隔で使用状況を監視する必要がある場合は、カウントをテーブルに取得することをお勧めします。

R での外部スクリプト関数の登録

R は任意のスクリプトをサポートしており、R コミュニティは何千ものパッケージを提供し、それぞれが独自の関数とメソッドを備えています。 ただし、この DMV は、SQL Server 2016 (13.x) R Services と共にインストールされている ScaleR 関数のみを監視します。

これらの関数の登録は、機能のインストール時に実行され、登録された関数を追加または削除することはできません。

サーバーで実行されている R スクリプトの数を表示する

次の例は、R 言語の外部スクリプト実行の累積数を表示します。

SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'R';

サーバーで実行されている Python スクリプトの数を表示する

次の例では、Python 言語の外部スクリプト実行の累積数を表示します。

SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'Python';

こちらもご覧ください