托管数据库对象监视和故障排除

适用于:SQL Server

本主题提供有关可用于监视和排查 SQL Server 中运行的托管数据库对象和程序集的工具的信息。

事件探查器跟踪事件

SQL Server 提供 SQL 跟踪和事件通知,用于监视数据库引擎中发生的事件。 通过记录指定的事件,SQL 跟踪可帮助你排查性能问题、审核数据库活动、收集测试环境的示例数据、调试 Transact-SQL 语句和存储过程,以及收集性能分析工具的数据。 有关详细信息,请参阅 SQL 跟踪扩展事件

事件 说明
Assembly Load 事件类 用于监视程序集加载请求(成功和失败)。
SQL:BatchStarting 事件类SQL:BatchCompleted 事件类 提供有关已启动或已完成的 Transact-SQL 批处理的信息。
SP:Starting 事件类SP:Completed 事件类 用于监视 Transact-SQL 存储过程的执行。
SQL:StmtStarting 事件类SQL:StmtCompleted 事件类 用于监视 CLR 和 Transact-SQL 例程的执行。

性能计数器

SQL Server 提供可由系统监视器用来监视运行 SQL Server 实例的计算机中的活动的对象和计数器。 对象是任何 SQL Server 资源,例如 SQL Server 锁或 Windows 进程。 每个对象有一个或多个计数器,用于确定所要监视对象的各方面信息。 有关详细信息,请参阅 使用 SQL Server 对象

Object 说明
SQL Server - CLR 对象 CLR 执行所花的总时间。

Windows 系统监视器 (PERFMON.EXE) 计数器

Windows 系统监视器 (PERFMON.EXE) 工具具有多个性能计数器,可用来监视 CLR 集成应用程序。 可以通过“sqlservr”进程名称筛选 .NET CLR 性能计数器,以跟踪当前正在运行的 CLR 集成应用程序。

性能对象 说明
SqlServer:CLR 提供服务器的 CPU 统计信息。
.NET CLR 异常 跟踪每秒异常数。
.NET CLR 加载 提供有关服务器中加载的 AppDomains 和程序集的信息。
.NET CLR 内存 提供有关 CLR 内存使用量的信息。 如果内存使用量变得过大,则此对象可用于标记警报。
SQL Server 的 .NET 数据访问接口 跟踪每秒的连接数和断开连接数。 此对象可用于监视数据库活动的级别。

目录视图

目录视图返回由 SQL Server 数据库引擎使用的信息。 建议您使用目录视图这一最常用的目录元数据界面,它可为您提供最有效的方法来获取、转换并显示此信息的自定义形式。 所有用户可用的目录元数据都通过目录视图来显示。 有关详细信息,请参阅目录视图 (Transact-SQL)

目录视图 说明
sys.assemblies (Transact-SQL) 返回有关在数据库中注册的程序集的信息。
sys.assembly_references (Transact-SQL) 标识引用其他程序集的程序集。
sys.assembly_modules (Transact-SQL) 返回有关在程序集中定义的每个函数、存储过程和触发器的信息。
sys.assembly_files (Transact-SQL) 返回有关在数据库中注册的程序集文件的信息。
sys.assembly_types (Transact-SQL) 标识由程序集定义的用户定义类型 (UDT)。
sys.module_assembly_usages (Transact-SQL) 标识在其中定义 CLR 模块的程序集。
sys.parameter_type_usages (Transact-SQL) 返回有关属于用户定义类型的参数的信息。
sys.server_assembly_modules (Transact-SQL) 标识在其中定义 CLR 触发器的程序集。
sys.server_triggers (Transact-SQL) 标识服务器上的服务器级别 DDL 触发器,包括 CLR 触发器。
sys.type_assembly_usages (Transact-SQL) 标识在其中定义用户定义类型的程序集。
sys.types (Transact-SQL) 返回在数据库中注册的系统和用户定义类型。

动态管理视图

动态管理视图和函数返回可用于监视服务器实例的运行状况、诊断故障以及优化性能的服务器状态信息。 有关详细信息,请参阅动态管理视图和函数(Transact-SQL)。

DMV 说明
sys.dm_clr_appdomains (Transact-SQL) 提供有关服务器中每个应用程序域的信息。
sys.dm_clr_loaded_assemblies (Transact-SQL) 标识在服务器上注册的每个托管程序集。
sys.dm_clr_properties (Transact-SQL) 返回有关宿主 CLR 的信息。
sys.dm_clr_tasks (Transact-SQL) 标识当前正在运行的所有 CLR 任务。
sys.dm_exec_cached_plans (Transact-SQL) 返回有关 SQL Server 缓存的查询执行计划的信息,以便更快地执行查询。
sys.dm_exec_query_stats (Transact-SQL) 返回缓存查询计划的聚合性能统计信息。
sys.dm_exec_requests (Transact-SQL) 返回有关在 SQL Server 中执行的每个请求的信息。
sys.dm_os_memory_clerks (Transact-SQL) 返回 SQL Server 实例中当前处于活动状态的所有内存 clerk,包括 CLR 内存 clerk。

另请参阅

公共语言运行时 (CLR) 集成编程概念