在设置一个跟踪之前,需要理解SQL Profiler和SQL Trace中常用的术语,以下是常用的术语:
服务器实例:是指Profiler跟踪时需要连接到的SQL Server的一个实例,需要指定实例名称,如果SQL Server运行在windows,那么需要知道其虚拟名称。
SQL跟踪事件:是指在整个性能监控过程中需要跟踪哪些方面的问题,该项设置直接影响到监控过程中将获得的数据,一个跟踪事件代表SQL Server产生的不同的活动,将问题症状与可跟踪的事件进行匹配是一项比较难的工作。
事件类别:在SQL Profiler中可跟踪事件有很多,事件类别是对事件类进行分组,相同类的事件归纳到一个事件类别中,例如所以关于lock的事件类都分组到Locks事件类别中。SQL Profiler中的事件类别如图所示。
事件类:是指能够被SQL Server实例跟踪的特定类型事件,事件类包含描述一个事件的所有数据,在SQL Server中,大约有200个事件类,而一个事件类别中又包含多个事件类,每个事件类都有自身的数据列集(如TextData、ApplicationName、NTUserName等),如图所示。
数据列:数据列与一个跟踪中所捕获的事件类相关联,它是每个事件类中的属性,一个事件类可能有多个不同的相关联的数据列。在SQL Server Profilere有一种内部逻辑处理数据列与事件类之间的依赖关系,这样每个事件类只显示与其相关联的一些数据列,而并不是每个事件类都显示出所有的数据列。如图所示。
跟踪:是指由SQL Server的一个实例返回的可跟踪的事件类及数据的集合,它是一个动作,是对一个SQL Server中的一个实例进行监控,并且在监控过程中收集事件类的相关数据,跟踪会根据选中的事件类、数据列以及筛选器来收集监控过程中的数据。
跟踪文件:是指保存跟踪结果的文件,在设置跟踪过程可以指定跟踪文件的位置。
跟踪表:是指将保存跟踪结果保存到一个数据库的表中,在设置跟踪过程中可以将跟踪数据保存到指定的数据库表中。
筛选器:在创建一个跟踪或模板时,如果不对列进行筛选,那么在跟踪过程中SQL Profiler会收集事件类中所有列的数据值,为了防止跟踪变得过于庞大,通过设置筛选器可以对事件数据进行筛选,确保只收集其中一部分数据。例如:对SPID进行筛选,可以指定跟踪的SPID,这样跟踪过程中只会收集所指定的SPID的相关数据。筛选器设置如图所示。
模板:模板用于定义一个跟踪的默认配置,SQL Server Profiler可以自定义模板也可以使用自建的模板,自建模板包括:Standard、TSQL、TSQL_Duration、TSQL_Grouped、TSQL_Replay、TSQL_SPs和Tuning。在测试过程中可以使用自建模板也可以自己配置模板,模板中包括监控的事件类,如果自定义模板,需要确定监控的事件、数据列以及筛选器。
常见的跟踪场景以及建议使用的事件类,见表。