SS Profiler.docx
- 文档编号:18298869
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:41
- 大小:43.31KB
SS Profiler.docx
《SS Profiler.docx》由会员分享,可在线阅读,更多相关《SS Profiler.docx(41页珍藏版)》请在冰点文库上搜索。
SSProfiler
SQL跟踪简介
MicrosoftSQLServer提供Transact-SQL系统存储过程来创建对SQLServer数据库引擎 实例的跟踪。
可以不使用SQLServerProfiler,而使用这些系统存储过程从您自己的应用程序中手动创建跟踪。
这使您可以针对企业的特定需要编写自定义应用程序。
本节内容
主题
说明
“SQL跟踪”的术语
包含用于讨论SQL跟踪的词汇表。
“SQL跟踪”的术语
下列词汇介绍了SQL跟踪的重要概念。
事件MicrosoftSQLServer数据库引擎 或SQLServer2005数据库引擎 实例中发生的操作。
数据列事件的属性。
事件类可以被跟踪的事件类型。
该事件类包含可以由事件报告的所有数据列。
事件类别一组相关的事件类。
跟踪(名词)数据库引擎 返回的事件和数据的集合。
跟踪(动词)收集并监视SQLServer实例中的事件。
跟踪定义事件类、数据列和筛选器的集合,用于标识跟踪过程中收集的事件的类型。
筛选器限制跟踪中收集的事件的条件。
跟踪文件保存跟踪时创建的文件。
模板在SQLServerProfiler 中,用来定义要在跟踪中收集的事件类和数据列的文件。
跟踪表在SQLServerProfiler 中,将跟踪保存到表时创建的表。
SQL跟踪结构
包含说明SQL跟踪在SQLServer中的工作方式的关系图。
SQL跟踪结构
在SQL跟踪中,如果事件是在跟踪定义中列出的事件类的实例,则收集这些事件。
可以将这些事件从跟踪中筛选出来或为其目标进行排队。
目标可以是文件或SQLServer管理对象(SMO),它可以使用管理SQLServer的应用程序中的跟踪信息。
以下关系图显示了在跟踪期间SQL跟踪如何收集事件。
事件源可以是生成跟踪事件(例如Transact-SQL批处理)或SQLServer事件(例如死锁)的任何源。
有关事件的详细信息,请参阅SQLServer事件类参考。
事件发生后,如果该事件类已经包含在跟踪定义中,则跟踪将收集该事件信息。
如果已经在跟踪定义中为该事件类定义筛选器,则将应用这些筛选器并将跟踪事件信息传递到队列。
从队列中,跟踪信息或者被写入文件,或者由应用程序(例如SQLServerProfiler)中的SMO使用。
请参阅
其他资源
使用SQLServerProfiler
SQLServerManagementObjects(SMO)
使用SQL跟踪
包含有关使用SQL跟踪的信息。
例如,本节中的主题说明如何创建跟踪筛选器并保存跟踪。
使用SQL跟踪
根据使用的是MicrosoftSQLServerProfiler 还是系统存储过程来创建和运行跟踪,用SQL跟踪进行跟踪的过程会有所不同。
除了SQLServerProfiler,还可以使用Transact-SQL系统存储过程来创建和运行跟踪。
通过系统存储过程进行跟踪的过程如下:
1.使用sp_trace_create创建跟踪。
2.使用sp_trace_setevent添加事件。
3.(可选)使用sp_trace_setfilter设置筛选器。
4.使用sp_trace_setstatus启动跟踪。
5.使用sp_trace_setstatus停止跟踪。
6.使用sp_trace_setstatus关闭跟踪。
注意:
使用Transact-SQL系统存储过程创建服务器端跟踪,这可以保证只要磁盘上有空间且不出现写入错误,就不会丢失任何事件。
如果磁盘已满或发生故障,SQLServer实例会继续运行,但跟踪将停止。
如果设置了c2auditmode且出现写入错误,跟踪将停止且SQLServer实例关闭。
有关c2auditmode设置的详细信息,请参阅C2审核模式选项。
本节内容
主题
说明
用数据列描述事件
介绍用于说明事件属性的数据列。
保存跟踪结果
介绍将跟踪结果保存到文件或表。
优化SQL跟踪
说明如何降低跟踪对系统性能的影响。
筛选跟踪
介绍使用筛选器进行跟踪。
限制跟踪文件和表的大小
说明如何限制写入跟踪数据的文件和表的大小。
请注意,只有SQLServerProfiler 可以将跟踪信息写入表。
安排跟踪
说明如何设置跟踪的开始时间和结束时间。
请参阅
其他资源
sp_trace_create(Transact-SQL)
sp_trace_setevent(Transact-SQL)
sp_trace_setfilter(Transact-SQL)
sp_trace_setstatus(Transact-SQL)
下表列出了用于跟踪SQLServer数据库引擎 实例的系统存储过程。
存储过程
执行的任务
fn_trace_geteventinfo(Transact-SQL)
返回跟踪中包含的事件的相关信息。
fn_trace_getinfo(Transact-SQL)
返回有关指定跟踪或所有现有跟踪的信息。
sp_trace_create(Transact-SQL)
创建跟踪定义。
新的跟踪将处于停止状态。
sp_trace_generateevent(Transact-SQL)
创建用户定义事件。
sp_trace_setevent(Transact-SQL)
将事件类或数据列添加到跟踪,或从跟踪中删除事件类或数据列。
sp_trace_setstatus(Transact-SQL)
启动、停止或关闭跟踪。
fn_trace_getfilterinfo(Transact-SQL)
返回有关应用于跟踪的筛选器的信息。
sp_trace_setfilter(Transact-SQL)
将新的或已修改的筛选器应用于跟踪。
使用存储过程定义自己的跟踪
1.使用sp_trace_setevent指定要捕获的事件。
2.指定任何事件筛选器。
有关详细信息,请参阅如何设置跟踪筛选器(Transact-SQL)。
3.使用sp_trace_create为捕获的事件数据指定目的。
设置跟踪定义默认值
SQLServerProfiler
设置跟踪显示默认值
SQLServerProfiler
创建跟踪
SQLServerProfiler
Transact-SQL
向跟踪模板添加或从中删除事件
SQLServerProfiler
Transact-SQL
SQLServerProfiler的F1帮助
MicrosoftSQLServerProfiler是从服务器捕获MicrosoftSQLServer2005事件的工具。
这些事件将保存在一个跟踪文件中,当试图诊断问题时,可以对该文件进行分析或用它来重播某一系列的步骤。
下一部分包含SQLServerProfiler的上下文相关帮助主题。
按F1键或在对话框中单击“帮助”,即可从用户界面中查看这些主题。
请参阅
其他资源
SQLServerProfiler简介
服务器性能和活动监视操作指南主题
SQLServerProfiler简介
更新日期:
2006年7月17日
MicrosoftSQLServerProfiler是SQL跟踪的图形用户界面,用于监视SQLServer数据库引擎或SQLServerAnalysisServices的实例。
您可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析。
例如,可以对生产环境进行监视,了解哪些存储过程由于执行速度太慢影响了性能。
若要运行SQLServerProfiler,请在“开始”菜单中依次指向“所有程序”、MicrosoftSQLServer2005和“性能工具”,然后单击SQLServerProfiler。
本节内容
主题
说明
SQLServerProfiler术语
介绍用于说明如何使用SQLServerProfiler来创建和使用跟踪的术语。
使用SQLServerProfiler
说明如何使用SQLServerProfiler。
使用SQLServerProfiler时,有必要了解SQL跟踪。
有关SQL跟踪的详细信息,请参阅SQL跟踪简介。
SQLServerProfiler术语
若要使用SQLServerProfiler,您需要了解描述该工具工作方式的术语。
事件
事件是在SQLServer数据库引擎 实例中生成的操作。
示例包括:
∙登录连接、失败和断开。
∙Transact-SQLSELECT、INSERT、UPDATE和DELETE语句。
∙远程过程调用(RPC)批处理状态。
∙存储过程的开始或结束。
∙存储过程中的语句的开始或结束。
∙SQL批处理的开始或结束。
∙写入到SQLServer错误日志的错误。
∙在数据库对象上获取或释放的锁。
∙打开的游标。
∙安全权限检查。
由事件生成的所有数据显示在单个行中的跟踪内。
该行与详细说明事件的数据列相交。
事件类
事件类是可跟踪的事件类型。
事件类包含所有可由事件报告的数据。
事件类示例如下所示:
∙SQL:
BatchCompleted
∙AuditLogin
∙AuditLogout
∙Lock:
Acquired
∙Lock:
Released
事件类别
事件类别定义SQLServerProfiler 中的事件的分组方法。
例如,所有锁事件类都分组在Locks事件类别中。
但是,事件类别仅存在于SQLServerProfiler 中。
该术语不反映引擎事件的分组方法。
数据列
数据列是在跟踪中捕获的事件类的属性。
由于事件类决定了可收集的数据类型,因此并不是所有数据列都适用于所有事件类。
例如,在捕获了Lock:
Acquired事件类的跟踪中,BinaryData数据列包含锁定的页ID或行的值,但IntegerData数据列不包含任何值,因为该数据列不适用于被捕获的事件类。
有关默认数据列的详细信息,请参阅用数据列描述事件。
模板
模板定义跟踪的默认配置。
具体地说,它包括您要使用SQLServerProfiler 监视的事件类。
例如,可以创建一个指定了要使用的事件、数据列和筛选器的模板。
模板不会被执行,而是用.tdf扩展名保存为文件。
保存后,模板就可以在启动基于此模板的跟踪时控制捕获的跟踪数据。
跟踪
跟踪基于选定的事件、数据列和筛选器捕获数据。
例如,可创建跟踪来监视异常错误。
为此,请选择Exception事件类以及Error、State和Severity数据列。
需要收集这三列的数据,以使跟踪结果可提供有意义的数据。
然后,可运行以此方式配置的跟踪,并可收集有关服务器中发生的任何Exception事件的数据。
可以保存跟踪数据,也可以立刻将其用于分析。
尽管某些事件(如Exception事件)永远不会被重播,但跟踪以后可以被重播。
还可以将跟踪保存为模板,以便在将来生成类似的跟踪。
SQLServer使用两种方法来跟踪SQLServer实例:
可以使用SQLServerProfiler 进行跟踪,也可以使用系统存储过程进行跟踪。
筛选器
当创建跟踪或模板时,可以定义筛选由事件收集的数据的准则。
若要避免跟踪过大,可以筛选跟踪,以便只收集一部分事件数据。
例如,可以在跟踪中将MicrosoftWindows用户名限制为特定的用户,从而减少输出的数据。
如果没有设置筛选器,跟踪输出中将返回选定事件类的所有事件。
使用SQLServerProfiler
SQLServerProfiler 可显示SQLServer如何在内部解析查询。
这就使管理员能够准确查看提交到服务器的Transact-SQL语句或多维表达式,以及服务器是如何访问数据库或多维数据集以返回结果集的。
使用SQLServerProfiler 可以执行下列操作:
∙创建基于可重用模板的跟踪
∙当跟踪运行时监视跟踪结果
∙将跟踪结果存储在表中
∙根据需要启动、停止、暂停和修改跟踪结果
∙重播跟踪结果
使用SQLServerProfiler 只监视感兴趣的事件。
如果跟踪变得太大,可以基于所需的信息进行筛选,以便只收集部分事件数据。
监视过多事件会增加服务器和监视进程的开销,并且可能导致跟踪文件或跟踪表变得很大,尤其是当监视进程持续很长时间时。
注意:
在SQLServer2005中,如果跟踪列的值大于1GB,将返回一个错误,并且会在跟踪输出中截断该列的值。
本节内容
主题
说明
SQLServerProfiler模板
介绍SQLServerProfiler 附带的预定义跟踪模板。
运行SQLServerProfiler所需的权限
介绍运行SQLServerProfiler 时所需的权限。
保存跟踪和跟踪模板
介绍如何保存跟踪输出和将跟踪定义保存到模板中。
修改跟踪模板
介绍如何使用SQLServerProfiler 或Transact-SQL来修改跟踪模板。
启动、暂停和停止跟踪
介绍启动、暂停或停止跟踪时将发生的情况。
将跟踪与Windows性能日志数据关联
介绍如何使用SQLServerProfiler将Windows性能日志数据与跟踪相关联。
使用SQLServerProfiler查看和分析跟踪
介绍如何使用跟踪对数据进行故障排除、在跟踪中显示对象名以及在跟踪中查找事件。
使用SQLServerProfiler分析死锁
介绍如何使用SQLServerProfiler 识别造成死锁的原因。
在SQLServerProfiler中使用SHOWPLAN结果来分析查询
介绍如何使用SQLServerProfiler 收集和显示“显示计划”和“显示计划统计信息”的结果。
使用SQLServerProfiler筛选跟踪
介绍如何使用SQLServerProfiler 设置针对数据列的筛选器以筛选跟踪输出。
重播跟踪
解释重播跟踪的意义以及重播跟踪所需的条件。
使用SQLServer事件探查器的方案
介绍了可以使用SQLServerProfiler 分析SQLServer性能的典型方案。
服务器性能和活动监视操作指南主题
监视数据库的目的是评估服务器的性能。
有效的监视包括定期获取当前性能的快照以隔离引起问题的进程,并一直不断收集数据以跟踪性能走向。
MicrosoftSQLServer和MicrosoftWindows操作系统提供了一些实用工具,用来查看数据库的当前状态并跟踪状态更改时的性能。
下一节包含的主题说明了如何使用SQLServer和Windows性能以及活动监视工具。
本节包含以下主题:
本节内容
使用Windows工具执行监视任务
∙如何启动性能监视器(WindowsNT)
∙如何启动系统监视器(Windows)
∙如何查看Windows应用程序日志(Windows)
使用Windows工具创建SQLServer数据库警报
∙如何设置SQLServer数据库警报(Windows)
∙如何设置SQLServer数据库警报(WindowsNT)
使用SQLServerManagementStudio执行监视任务
∙如何查看SQLServer错误日志(SQLServerManagementStudio)
∙如何打开活动监视器(SQLServerManagementStudio)
使用Transact-SQL存储过程并通过SQL跟踪执行监视任务
∙如何创建跟踪(Transact-SQL)
∙如何设置跟踪筛选器(Transact-SQL)
∙如何修改现有跟踪(Transact-SQL)
∙如何查看保存的跟踪(Transact-SQL)
∙如何查看筛选器信息(Transact-SQL)
∙如何删除跟踪(Transact-SQL)
使用SQLServerProfiler创建和修改跟踪
如何创建跟踪(SQLServerProfiler)
如何创建跟踪(SQLServerProfiler)
更新日期:
2005年12月5日
本主题介绍如何使用SQLServerProfiler来创建跟踪。
创建跟踪
1.在“文件”菜单上,单击“新建跟踪”,并连接到SQLServer实例。
此时,将显示“跟踪属性”对话框。
注意:
如果选中“建立连接后立即开始跟踪”,就不会显示“跟踪属性”对话框,而是直接开始跟踪。
若要关闭此设置,请在“工具”菜单上,单击“选项”,再清除“建立连接后立即开始跟踪”复选框。
2.在“跟踪名称”框中,键入跟踪的名称。
3.在“使用模板”列表中,为此跟踪选择一个跟踪模板;如果不想使用模板,请选择“空白”。
4.若要保存跟踪结果,请执行下列操作之一:
∙单击“保存到文件”将跟踪捕获到文件中。
指定“设置最大文件大小”的值。
默认值为5MB。
或者,选择“启用文件滚动更新”,以便当文件大小达到最大值时自动创建新文件。
也可以选择“服务器处理跟踪数据”,由正在运行跟踪的服务而不是客户端应用程序来处理跟踪数据。
在服务器处理跟踪数据时,即使是在压力较大的情况下也不会跳过事件,但是服务器性能可能会受到影响。
∙单击“保存到表”将跟踪捕获到数据库表中。
根据需要,可以单击“设置最大行数”,并指定值。
注意:
如果不将跟踪结果保存到文件或表中,则当SQLServerProfiler打开时可以查看跟踪。
但是,在停止跟踪并关闭SQLServerProfiler之后会丢失跟踪结果。
为了避免这种丢失跟踪结果的情况,可以在关闭SQLServerProfiler之前单击“文件”菜单上的“保存”来保存结果。
5.根据需要,可以选中“启用跟踪停止时间”复选框,再指定停止日期和时间。
6.若要添加或删除事件、数据列或筛选器,请单击“事件选择”选项卡。
有关详细信息,请参阅如何指定跟踪文件的事件和数据列(SQLServerProfiler)。
7.单击“运行”启动跟踪功能。
请参阅
任务
如何将跟踪与Windows性能日志数据关联(SQLServerProfiler)
如何设置全局跟踪选项(SQLServerProfiler)
如何设置全局跟踪选项(SQLServerProfiler)
本主题介绍了如何设置应用于随特定的SQLServerProfiler 实例创建的所有跟踪的选项。
设置全局跟踪选项
1.在“工具”菜单上,单击“选项”。
2.在“常规选项”对话框中,单击“选择字体”修改显示选项,再单击“确定”。
3.根据需要选择“建立连接后立即开始跟踪”。
4.根据需要选择“当提供程序版本发生更改时更新跟踪定义”。
建议选择该选项,且默认情况下选择该选项。
选择该选项后,跟踪定义会自动更新为执行跟踪的服务器的当前版本。
5.根据需要指定服务器管理滚动更新文件的方式:
∙选择“不作提示,依次加载所有滚动更新文件”在重播期间自动加载滚动更新文件。
∙选择“加载滚动更新文件之前进行提示”在重播期间控制滚动更新文件。
∙选择“从不加载后续滚动更新文件”每次只重播一个文件。
6.根据需要设置重播选项:
∙“默认重播线程数”控制重播期间使用的处理器线程数。
线程数越多,重播越快,但这会导致重播期间服务器的性能降低。
建议将该项设置为4。
下表列出了可用选项:
值
说明
2
最小值。
使用两个线程重播。
4
默认值。
255
最大值。
设置为最大值会影响其他进程的性能。
∙“默认HealthMonitor等待间隔(秒)”设置重播线程可以阻塞其他进程的最长时间(以秒为单位)。
下表说明了这些值。
值
说明
0
最小值。
设置为0表示SQLServerProfiler 永远不会停止阻塞进程。
3600
默认值。
允许不超过3600秒(1小时)的阻塞进程。
86400
最大值。
允许不超过86400秒(一天)的阻塞进程。
∙“默认HealthMonitor轮询间隔(秒)”设置针对阻塞进程轮询重播线程的频率。
下表说明了这些值。
值
说明
1
最小值。
设置为1表示SQLServerProfiler 每秒针对阻塞进程轮询一次。
60
默认值。
每分钟针对阻塞进程轮询一次。
86400
最大值。
每86400秒(一天)针对阻塞进程轮询一次。
请参阅
任务
如何设置跟踪显示默认值(SQLServer事件探查器)
如何指定跟踪文件的事件和数据列(SQLServerProfiler)
如何指定跟踪文件的事件和数据列(SQLServerProfiler)
本主题介绍了如何使用SQLServerProfiler指定跟踪的事件类和数据列。
指定跟踪的事件和数据列
1.在“跟踪属性”或“跟踪模板属性”对话框中,单击“事件选择”选项卡。
“事件选择”选项卡包含一个网格控件。
网格控件是包含所有可跟踪事件类的表。
每个事件类在表中占一行。
根据您所连接的服务器的类型和版本的不同,事件类会略有不同。
事件类是由网格的“事件”列进行标识,并按事件类别进行分组。
其余列则列出每个事件类可以返回的数据列。
2.在“事件选择”选项卡上,使用网格控件在跟踪文件中添加或删除事件和数据列。
3.若要从跟踪中删除事件,请清除每个事件类的“事件”列中的复选框。
4.若要在跟踪中包括事件,请选中每个事件类的“事件”列中的复选框,或者选中对应于事件的数据列。
重要提示:
如果跟踪要与系统监视器或性能监视器数据关联,则必须在跟踪中包括“开始时间”和“结束时间”数据列。
如果已选中对应于事件的复选框,在包括事件类时,跟踪中也将包括关联的数据列。
如果选中某个特定列的复选框,跟踪中将只包括该列。
如何创建Transact-SQL脚本来运行跟踪(SQLServerProfiler)
如何创建Transact-SQL脚本来运行跟踪(SQLServerProfiler)
本主题说明了如何使用SQLServerProfiler 从现有的跟踪文件或表中创建Transact-SQL脚本。
创建Transact-SQL脚本来运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SS Profiler
![提示](https://static.bingdoc.com/images/bang_tan.gif)