sys.dm_external_script_execution_stats

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL Managed Instance

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, tel que rxExec.

Notes

Cette vue de gestion dynamique (DMV) n’est disponible que 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 in SQL Server 2016, Machine Learning Services (R, Python) in 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 integer Nombre total d’instance appelée de la fonction enregistrée de script externe sur le serveur. Cette valeur est cumulative, à compter de l’heure à laquelle la fonctionnalité a été installée sur le 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 DMV peut être utilisée par les administrateurs sans cette autorisation.

Notes

Cette 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 un DMV 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 le termine rapidement, une DMV conventionnelle peut ne pas afficher de données.

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

Valeurs de compteur

Dans SQL Server 2016 (13.x), le seul langage externe pris en charge est R et les demandes 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 tous deux pris en charge par des langages externes et les demandes de script externe sont gérées par Machine Learning Services.

Pour R, ce DMV suit le nombre d’appels R effectués sur un instance. Par exemple, si rxLinMod est appelé et exécuté en parallèle, le compteur augmente 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 suit le nombre d’appels Python effectués sur un instance.

Le nombre commence lorsque la fonctionnalité est installée et activée sur le 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 externes dans R

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

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