sys.dm_external_script_requests

适用于: SQL Server 2016 (13.x) 及更高版本 Azure SQL 托管实例

为运行外部脚本的每个活动工作线程帐户都返回一行。

注意

仅当已安装并启用了支持外部脚本执行的功能时,此动态管理视图 (DMV) 才可用。 有关详细信息,请参阅机器学习服务 (R、SQL Server 2017 及更高版本中的 Python) SQL Server 2016 中的 R ServicesAzure SQL 托管实例 中的机器学习服务

列名称 数据类型 说明
external_script_request_id 唯一标识符 发送外部脚本请求的进程的 ID。 这对应于接收 SQL 实例的进程 ID。
语言 nvarchar 表示支持的脚本语言的关键字。
degree_of_parallelism int 数字,指示已创建的并行进程数。 此值可能与请求的并行进程数不同。
external_user_name nvarchar 在其下执行脚本的 Windows 工作线程帐户。

权限

需要对 VIEW SERVER STATE 服务器具有权限。

注意

运行外部脚本的用户必须具有附加权限 EXECUTE ANY EXTERNAL SCRIPT,但是,管理员可以在没有此权限的情况下使用此 DMV。

SQL Server 2022 及更高版本的权限

需要对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

注解

此视图可以使用脚本语言标识符进行筛选。

此视图还返回在其下运行脚本的工作线程帐户。 有关外部脚本使用的工作器帐户的信息,请参阅 SQL Server 机器学习服务中扩展性框架的安全概述中用于处理 SQLRUserGroup) (标识部分。

external_script_request_id 字段中返回的 GUID 还表示用于存储临时文件的受保护目录的文件名。 每个辅助角色帐户(如 MSSQLSERVER01)表示单个 SQL 登录名或 Windows 用户,并可用于运行多个脚本请求。 默认情况下,这些临时文件会在请求脚本完成之后进行清理。

此 DMV 仅监视活动进程,不能报告已完成的脚本。 如果需要跟踪脚本的持续时间,我们建议将计时信息添加到脚本并在脚本执行过程中进行捕获。

示例

查看特定进程的当前活动脚本

下面的示例显示在当前实例上运行的外部脚本执行数。

SELECT external_script_request_id
  , [language]
  , degree_of_parallelism
  , external_user_name
FROM sys.dm_external_script_requests;

结果

external_script_request_id 语言 degree_of_parallelism external_user_name
183EE6FC-7399-4318-AA2E-7A6C68E435A8 R 1 MSSQLSERVER01

另请参阅