Partager via


sys.dm_external_script_execution_stats

S’applique à : SQL Server 2016 (13.x) et azure SQL Managed Instance ultérieure

Renvoie une ligne pour chaque type de demande de script externe. Les demandes de script externe sont regroupées par le langage de script externe pris en charge. Une ligne est générée pour chaque fonction de script externe inscrite. Les fonctions de script externe arbitraires ne sont pas enregistrées, sauf si elles sont envoyées par un processus parent, par rxExecexemple .

Remarque

Cette vue de gestion dynamique (DMV) est disponible uniquement si vous avez installé et activé la fonctionnalité qui prend en charge l’exécution de script externe. Pour plus d’informations, consultez R Services dans SQL Server 2016, Machine Learning Services (R, Python) dans SQL Server 2017 et versions ultérieures et Azure SQL Managed Instance Machine Learning Services.

Nom de la colonne Type de données Description
language nvarchar Nom du langage enregistré de script externe. Chaque script externe doit spécifier le langage dans la demande de requête utilisé pour le démarrage du lanceur associé.
counter_name nvarchar Nom de la fonction enregistrée de script externe. Ne peut pas accepter la valeur Null.
counter_value entier Nombre total d’instance appelée de la fonction enregistrée de script externe sur le serveur. Cette valeur est cumulative, en commençant par le moment où la fonctionnalité a été installée sur l’instance et ne peut pas être réinitialisée.

autorisations

Pour SQL Server 2019 (15.x) et les versions précédentes, nécessite l’autorisation VIEW SERVER STATE sur le serveur.

Pour SQL Server 2022 (16.x) et versions ultérieures, nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.

Les utilisateurs qui exécutent des scripts externes doivent disposer de l’autorisation supplémentaire EXECUTE ANY EXTERNAL SCRIPT. Toutefois, cette vue DMV peut être utilisée par les administrateurs sans cette autorisation.

Notes

Cette vue DMV est fournie pour la télémétrie interne afin de surveiller l’utilisation globale de la nouvelle fonctionnalité d’exécution de script externe fournie dans SQL Server. La télémétrie démarre au lancement de LaunchPad et incrémente un compteur sur disque à chaque fois qu’une fonction enregistrée de script externe est appelée.

En règle générale, les compteurs de performance demeurent valides tant que le processus qui les a générés reste actif. Par conséquent, une requête sur une vue dynamique ne peut pas afficher de données détaillées pour les services qui ont cessé de s’exécuter. Par exemple, si un lanceur exécute un script externe et qu’il les termine rapidement, une DMV conventionnelle peut ne pas afficher de données.

Par conséquent, les compteurs suivis par cette vue dynamique sont conservés en cours d’exécution et l’état est sys.dm_external_script_requests conservé à l’aide d’écritures sur le disque, même si l’instance est arrêtée.

Valeurs de compteur

Dans SQL Server 2016 (13.x), le seul langage externe pris en charge est R et les requêtes de script externe sont gérées par R Services (dans la base de données). Dans SQL Server 2017 (14.x) et versions ultérieures, et sur Azure SQL Managed Instance, R et Python sont pris en charge dans les langages externes et les demandes de script externe sont gérées par Machine Learning Services.

Pour R, cette DMV effectue le suivi du nombre d’appels R effectués sur une instance. Par exemple, si rxLinMod elle est appelée et exécutée en parallèle, le compteur incrémente de 1.

Pour le langage R, les valeurs de compteur affichées dans le champ counter_name représentent le nom des fonctions ScaleR enregistrées. Les valeurs du champ counter_value représentent le nombre cumulé des instances de fonctions spécifiques ScaleR.

Pour Python, cette DMV effectue le suivi du nombre d’appels Python effectués sur une instance.

Le nombre commence lorsque la fonctionnalité est installée et activée sur l’instance et est cumulative jusqu’à ce que le fichier qui conserve l’état soit supprimé ou remplacé par un administrateur. Par conséquent, il n’est généralement pas possible de réinitialiser les valeurs dans counter_value. Si vous souhaitez contrôler l’utilisation par session, période calendaire ou tout autre intervalle, nous vous recommandons de capturer les nombres dans un tableau.

Inscription de fonctions de script externe dans R

R prend en charge des scripts arbitraires et la communauté R fournit des milliers de packages, chacun avec ses propres fonctions et méthodes. Toutefois, cette vue de gestion dynamique surveille uniquement les fonctions ScaleR installées avec SQL Server 2016 (13.x) R Services.

L’inscription de ces fonctions est effectuée lorsque la fonctionnalité est installée et que les fonctions inscrites ne peuvent pas être ajoutées ou supprimées.

Exemples

Afficher le nombre de scripts R exécutés sur le serveur

L’exemple suivant affiche le nombre cumulé d’exécutions du script externe pour le langage R.

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

Afficher le nombre de scripts Python exécutés sur le serveur

L’exemple suivant affiche le nombre cumulé d’exécutions de scripts externes pour le langage Python.

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

Voir aussi