适用于: SQL Server 2016 (13.x) 及更高版本
Azure SQL 托管实例
为运行外部脚本的每个活动工作线程帐户都返回一行。
注意
仅当已安装并启用支持外部脚本执行的功能时,此动态管理视图(DMV)才可用。 有关详细信息,请参阅 SQL Server 2017 及更高版本中的 机器学习 Services(R、Python)、SQL Server 2016 中的 R Services 和 Azure SQL 托管实例 中的 机器学习 服务。
| 列名称 | 数据类型 | 描述 |
|---|---|---|
| external_script_request_id | 唯一标识符 | 发送外部脚本请求的进程的 ID。 这对应于收到 SQL 实例的进程 ID。 |
| language | 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 机器学习 Services 中扩展性框架的安全概述中的“处理中使用的标识”(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 | language | degree_of_parallelism | external_user_name |
|---|---|---|---|
| 183EE6FC-7399-4318-AA2E-7A6C68E435A8 | R | 1 | MSSQLSERVER01 |