Integration Services 安装一组性能计数器,可用于监视数据流引擎的性能。 例如,可以监视 "Buffers spooled" 计数器,以确定在运行包时数据缓冲区是否正在临时写入磁盘。 此交换会降低性能并指示计算机内存不足。
注释
如果在运行 Windows Server 2003 的计算机上安装 Integration Services,然后将该计算机升级到 Windows Server 2008,则升级过程会从该计算机删除 Integration Services 性能计数器。 若要还原计算机上的 Integration Services 性能计数器,请在修复模式下运行 SQL Server 安装程序。
下表介绍了这些性能计数器:
| 性能计数器 | DESCRIPTION |
|---|---|
| BLOB 字节读取 | 数据流引擎从所有源中读取的二进制大型对象 (BLOB) 数据的字节数。 |
| 写入的 BLOB 字节数 | 数据流引擎已写入所有目标的 BLOB 数据的字节数。 |
| 正在使用的 BLOB 文件 | 数据流引擎当前用于假脱机的 BLOB 文件数。 |
| 缓冲区内存 | 正在使用的内存数量。 这可能包括物理内存和虚拟内存。 如果该数字大于物理内存量,则 Buffers Spooled 计数将随内存交换的增加而增加。 内存交换的增加会降低数据流引擎的性能。 |
| 正在使用的缓冲区 | 数据流组件和数据流引擎当前使用的各种类型的缓冲区对象的数量。 |
| Buffers Spooled | 当前写入磁盘的缓冲区的数量。 如果数据流引擎运行时物理内存较低,则当前没有使用的缓冲区会被写入磁盘,然后在需要时重新加载。 |
| 平面缓冲区内存 | 所有平面缓冲区使用的内存总量(以字节为单位)。 平面缓冲区是组件用于存储数据的内存块。 平面缓冲区是可逐字节访问的大型字节块。 |
| 正在使用的平面缓冲区 | 数据流引擎使用的平面缓冲区的数量。 所有平面缓冲区都是专用缓冲区。 |
| 专用缓冲区内存 | 所有专用缓冲区所使用的内存总量。 如果数据流引擎创建的是一个支持数据流的缓冲区,则该缓冲区就不是专用缓冲区。 专用缓冲区是指转换仅用于临时工作的缓冲区。 例如,聚合转换使用专用缓冲区来完成其工作。 |
| 正在使用的专用缓冲区 | 转换使用的缓冲区的数量。 |
| 读取的行数 | 源产生的行数。 该数值不包括查找转换从引用表中读取的行数。 |
| 写入的行 | 提供给目标的行数。 该数值不反映写入目标数据存储区中的行数。 |
您可以使用 Microsoft 管理控制台 (MMC) 管理单元“性能”来创建一个捕获性能计数器的日志。
有关如何提高性能的信息,请参阅 数据流性能特点。
获取性能计数器统计信息
对于部署到 Integration Services 服务器的项目,可以通过使用 dm_execution_performance_counters(SSISDB 数据库)函数获取性能计数器统计信息。
在下面的示例中,该函数将返回 ID 为 34 的正在运行的执行的统计信息。
select * from [catalog].[dm_execution_performance_counters] (34)
在下面的示例中,该函数返回正在 Integration Services 服务器上运行的所有执行的统计信息。
select * from [catalog].[dm_execution_performance_counters] (NULL)
重要
如果你是 ssis_admin 数据库角色的成员,则会返回所有正在运行的进程的性能统计信息。 如果您不是 ssis_admin 数据库角色的成员,则会返回您对其具有读取权限的正在运行的执行的性能统计信息。
相关内容
codeplex.com 上的 SSIS 性能可视化商业智能开发工作室(CodePlex 项目)工具。
msdn.microsoft.com 上的视频 测量和了解 SSIS 包在企业中的性能(SQL Server 视频)。
support.microsoft.com 上的支持文章 升级到 Windows Server 2008 后性能监视器中不再提供 SSIS 性能计数器。