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

本主题提供的信息介绍用于对正在 SQL Server 中运行的托管数据库对象和程序集进行监视和故障排除的工具。

事件探查器跟踪事件

SQL Server 提供 SQL 跟踪和事件通知来监视数据库引擎中发生的事件。通过记录指定事件,SQL 跟踪可以帮助您解决性能问题、审核数据库活动、收集用于测试环境的示例数据、调试 Transact-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 XP 进程。每个对象有一个或多个计数器,用于确定所要监视对象的各方面信息。有关详细信息,请参阅使用 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)

返回在数据库中注册的系统和用户定义类型。

动态管理视图

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

DMV

说明

sys.dm_clr_appdomains

提供有关服务器中每个应用程序域的信息。

sys.dm_clr_loaded_assemblies

标识在服务器上注册的每个托管程序集。

sys.dm_clr_properties

返回有关宿主 CLR 的信息。

sys.dm_clr_tasks

标识当前正在运行的所有 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

返回 SQL Server 实例中当前处于活动状态的所有内存 Clerk,包括 CLR 内存 Clerk。