sys.dm_external_script_execution_stats
适用于: SQL Server 2016 (13.x) 及更高版本 Azure SQL 托管实例
为每种类型的外部脚本请求返回一行。 外部脚本请求由受支持的外部脚本语言分组。 为每个已注册的外部脚本函数生成一行。 除非由父进程(例如 ) rxExec
发送,否则不会记录任意外部脚本函数。
注意
仅当已安装并启用了支持外部脚本执行的功能时,此动态管理视图 (DMV) 才可用。 有关详细信息,请参阅 SQL Server 2016 中的 R Services、SQL Server 2017 及更高版本中的机器学习服务 (R、Python) 以及Azure SQL 托管实例机器学习服务。
列名称 | 数据类型 | 说明 |
---|---|---|
language |
nvarchar | 已注册的外部脚本语言的名称。 每个外部脚本必须在脚本请求中指定语言以启动关联的启动器。 |
counter_name |
nvarchar | 已注册的外部脚本函数的名称。 不可为 null。 |
counter_value |
integer | 已在服务器上调用已注册外部脚本函数的实例的总数。 此值是累积的,从在实例上安装该功能的时间开始,无法重置。 |
权限
对于 SQL Server 2019 (15.x) 及早期版本,需要服务器上的 VIEW SERVER STATE 权限。
对于 SQL Server 2022 (16.x) 及更高版本,需要服务器上的 VIEW SERVER PERFORMANCE STATE 权限。
运行外部脚本的用户必须具有额外的 EXECUTE ANY EXTERNAL SCRIPT 权限。 但是,管理员可以在没有此权限的情况下使用此 DMV。
备注
此 DMV 用于内部遥测,用于监视 SQL Server 中提供的新外部脚本执行功能的总体使用情况。 启动 LaunchPad 时会启动遥测服务,每次调用已注册的外部脚本函数时会递增基于磁盘的计数器。
通常情况下,只要生成性能计数器的进程处于活动状态,它们便有效。 因此,对 DMV 的查询无法显示已停止运行的服务的详细数据。 例如,如果启动器执行外部脚本但又快速完成这些脚本,则传统的 DMV 可能不会显示任何数据。
因此,此 DMV 跟踪的计数器将保持运行状态,并且使用写入磁盘来保留 的状态 sys.dm_external_script_requests
,即使实例已关闭也是如此。
计数器值
在 SQL Server 2016 (13.x) 中,唯一支持的外部语言是 R,外部脚本请求由 R Services (数据库内) 处理。 在 SQL Server 2017 (14.x) 及更高版本中,Azure SQL 托管实例支持 R 和 Python 的外部语言,外部脚本请求由机器学习服务处理。
对于 R,此 DMV 跟踪对实例进行的 R 调用数。 例如,如果 rxLinMod
调用 并并行运行,则计数器将递增 1。
对于 R 语言, counter_name 字段中显示的计数器值表示已注册的 ScaleR 函数的名称。 counter_value 字段中的值表示特定 ScaleR 函数实例的累计数。
对于 Python,此 DMV 跟踪对实例进行的 Python 调用数。
计数从在实例上安装并启用该功能时开始,并且是累积的,直到管理员删除或覆盖维护状态的文件。 因此,通常无法重置 counter_value中的值。 如要希望根据会话、日历时间和其他间隔来监视使用情况,我们建议将计数捕获到表中。
在 R 中注册外部脚本函数
R 支持任意脚本,R 社区提供数千个包,每个包都有自己的函数和方法。 但是,此 DMV 仅监视随 SQL Server 2016 (13.x) R Services 一起安装的 ScaleR 函数。
这些函数的注册是在安装该功能时执行的,并且无法添加或删除已注册的函数。
示例
查看服务器上运行的 R 脚本数
下面的示例显示 R 语言的外部脚本执行的累计数。
SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'R';
查看服务器上运行的 Python 脚本数
以下示例显示 Python 语言的外部脚本执行的累积次数。
SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'Python';
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈