Sys.dm_external_script_requests
S’applique à : SQL Server 2016 (13.x) et azure SQL Managed Instance ultérieure
Renvoie une ligne pour chaque compte de travail actif qui exécute un script externe.
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 Machine Learning Services (R, Python) dans SQL Server 2017 et versions ultérieures, R Services dans SQL Server 2016 et Machine Learning Services dans Azure SQL Managed Instance.
Nom de la colonne | Type de données | Description |
---|---|---|
external_script_request_id | identificateur unique | ID du processus qui a envoyé la demande de script externe. Cela correspond à l’ID de processus reçu par l’instance SQL. |
langage | nvarchar | Mot clé qui représente un langage de script pris en charge. |
degree_of_parallelism | int | Nombre indiquant le nombre de traitements parallèles qui ont été créés. Cette valeur peut être différente du nombre de traitements parallèles qui ont été demandés. |
external_user_name | nvarchar | Le compte de travail Windows sous lequel le script a été exécuté. |
autorisations
Nécessite VIEW SERVER STATE
une autorisation sur le serveur.
Remarque
Les utilisateurs qui exécutent des scripts externes doivent disposer de l’autorisation EXECUTE ANY EXTERNAL SCRIPT
supplémentaire. Toutefois, cette vue DMV peut être utilisée par les administrateurs sans cette autorisation.
Autorisations pour SQL Server 2022 (et versions plus récentes)
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Notes
Cette vue peut être filtrée à l’aide de l’identificateur de langage de script.
La vue renvoie également le compte de travail sous lequel le script est en cours d’exécution. Pour plus d’informations sur les comptes de travail utilisés par les scripts externes, consultez la section Identités utilisées dans le traitement (SQLRUserGroup) dans La vue d’ensemble de la sécurité pour l’infrastructure d’extensibilité dans SQL Server Machine Learning Services.
Le GUID renvoyé dans le champ external_script_request_id représente également le nom de fichier du répertoire sécurisé où sont stockés les fichiers temporaires. Chaque compte de travail, tel que MSSQLSERVER01, représente une connexion SQL unique ou un utilisateur Windows, et peut être utilisé pour exécuter plusieurs demandes de script. Par défaut, ces fichiers temporaires sont nettoyés après l’achèvement du script demandé.
Cette vue de gestion dynamique surveille uniquement les processus actifs et ne peut pas générer de rapports sur des scripts déjà effectués. Si vous avez besoin de suivre la durée des scripts, nous vous recommandons d’ajouter des informations de durée à votre script et de les capturer dans le cadre de l’exécution du script.
Exemples
Affichage des scripts actifs pour un processus particulier
L’exemple suivant affiche le nombre d’exécutions de scripts externes en cours d’exécution sur l’instance actuelle.
SELECT external_script_request_id
, [language]
, degree_of_parallelism
, external_user_name
FROM sys.dm_external_script_requests;
Résultats
external_script_request_id | langage | degree_of_parallelism | external_user_name |
---|---|---|---|
183EE6FC-7399-4318-AA2E-7A6C68E435A8 | R | 1 | MSSQLSERVER01 |