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

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

对象 说明
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) 返回在数据库中注册的系统和用户定义类型。

动态管理视图

动态管理视图和函数返回可用于监视服务器实例的运行状况、诊断故障以及优化性能的服务器状态信息。 有关详细信息,请参阅 Dynamic Management Views and Functions (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实例中当前处于活动状态的所有内存分配器,包括 CLR 内存分配器。

另请参阅

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