sys.dm_external_script_requests

适用于: 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

另请参阅