适用范围:SQL Server 
Azure 数据工厂中的 SSIS Integration Runtime
返回正在 Integration Services 服务器上运行的执行的性能统计信息。
语法
dm_execution_performance_counters [ @execution_id = ] execution_id  
  
参数
[ @execution_id = ] execution_id
包含一个或多个包的执行的唯一标识符。 通过“执行包”任务执行的包在同一个执行中作为父包运行。
如果未指定执行 ID,则返回多个执行的性能统计信息。 如果你是 ssis_admin 数据库角色的成员,将返回所有正在运行的执行的性能统计信息。 如果你不是 ssis_admin 数据库角色的成员,则返回你对其具有读权限的正在运行的执行的性能统计信息。 execution_id 为 BigInt。
备注
下表列出了由 dm_execution_performance_counter 函数返回的计数器名称值。
| 计数器名称 | 说明 | 
|---|---|
| BLOB bytes read | 数据流引擎从所有源中读取的二进制大型对象 (BLOB) 数据的字节数。 | 
| BLOB bytes written | 数据流引擎写入所有目标的 BLOB 数据的字节数。 | 
| BLOB files in use | 数据流引擎正用于假脱机的 BLOB 文件数。 | 
| Buffer memory | Integration Services 缓冲区使用的内存量,包括物理内存和虚拟内存。 | 
| Buffers in use | 数据流组件和数据流引擎正在使用的各种类型的缓冲区对象的数量。 | 
| Buffers Spooled | 写入磁盘的缓冲区的数量。 | 
| Flat buffer memory | 所有平面缓冲区使用的内存量(以字节为单位)。 平面缓冲区是组件用于存储数据的内存块。 | 
| Flat buffers in use | 数据流引擎使用的平面缓冲区的数量。 所有平面缓冲区都是专用缓冲区。 | 
| Private buffer memory | 所有专用缓冲区所使用的内存量。 专用缓冲区是指转换用于临时工作的缓冲区。 如果数据流引擎创建的是一个支持数据流的缓冲区,则该缓冲区不是专用缓冲区。 | 
| Private buffers in use | 转换用于临时工作的缓冲区的数量。 | 
| Rows read | 执行读取的总行数。 | 
| Rows written | 执行写入的总行数。 | 
返回
dm_execution_performance_counters 函数为正在运行的执行返回包含以下列的表。 返回的信息用于执行中包含的所有包。 如果没有正在运行的执行,则返回空表。
| 列名 | 列类型 | 说明 | 备注 | 
|---|---|---|---|
| execution_id | BigInt NULL 不是有效值。 | 包含包的执行的唯一标识符。 | |
| counter_name | nvarchar(128) | 计数器的名称。 | 请参阅值的备注部分。 | 
| counter_value | BigInt | 计数器所返回的值。 | 
示例
A. 返回正在运行的执行的统计信息
在下面的示例中,该函数将返回 ID 为 34 的正在运行的执行的统计信息。
select * from [catalog].[dm_execution_performance_counters] (34)  
B. 返回所有正在运行的执行的统计信息
在下面的示例中,该函数返回正在 Integration Services 服务器上运行的所有执行的统计信息,具体取决于您的权限。
select * from [catalog].[dm_execution_performance_counters] (NULL)  
  
权限
此函数需要下列权限之一:
- 针对执行实例的 READ 和 MODIFY 权限 
- ssis_admin 数据库角色的成员资格 
- sysadmin 服务器角色的成员资格 
错误和警告
下表说明了导致函数失败的情况。
- 用户对指定的执行没有 MODIFY 权限。 
- 指定的执行 ID 无效。