资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
快速应用SQL Server事件探查器 用友软件股份有限公司 小型服务支持部 2009年 9月 整体概念 SQL 事件探查器是图形工具,使我们得以监视 MicrosoftSQL Server实例中的事件。可以捕获有关 每个事件的数据并将其保存到文件或 SQL Server 表中供以后分析。 例如,我们可以对生产环境进行监视,了解执行速 度太慢而妨碍性能的存储过程;了解到哪些SQL语句 或者存储过程产生了异常错误导致程序中断等等。 SQLSERVER2005的事件探查器的位置略有不同 SQL 事件探查器术语 模板 模板定义想要使用 SQL 事件探查器监视的每个事件的准则。 每次启动事件探查器监视时都会让您选择一个模板来进行跟踪,默 认是一个标准模板(SQLProfilerStandard)。里面有事先定义好的 的事件和数据列,没有筛选。 我们可以创建一个模板以指定使用哪些事件、数据列和筛选。然后 可以保存该模板,并用当前的模板设置启动跟踪。捕获的跟踪数据 基于模板中指定的选项。模板不执行且必须用 .tdf 扩展名保存到 文件。 我们也可以创建一个自己的模板,并设置成每次启动自动运行该模板, 具体操作如下: 点“工具”菜单下的“选项”,弹出如下窗口(请注意红色区域): 模板 模板 【使用下列默认跟踪模板】:您可以在这里选择 一个默认的跟踪模板,这样每次新建一个跟踪时 就以该模板为默认模板; 【进行连接后立即启动跟踪】:选择该选项,连 接上对应的服务器后立即运行默认跟踪模板进行 跟踪; 【显示】页签下您可以设置所使用的跟踪窗体显 示的字体、字体的大小,这里就不在赘述。 模板 我们还可以保存模板以减少我们的重复劳动。保存模板涉及保存跟踪定义,比如指定的 数据列、事件和筛选。 跟踪定义包括事件类、数据列、事件准则(筛选)和所有其它用来创建跟踪的属性(捕 获的事件数据除外)。使用 SQL 事件探查器创建的模板保存在运行 SQL 事件探查器的 计算机上的文件中。 如果经常监视 SQL Server,则保存模板以便分析性能。模板每次捕获相同的事件数据 ,并使用相同的跟踪定义监视同一事件,因而无须在每次创建跟踪时都定义事件类和数 据列。 另外,可以将模板提供给其他用户,供其监视特定的 SQL Server 事件。例如,支持提 供商可提供给客户一个模板。客户使用这个模板捕获所需的事件数据,然后将这些数据 发送给支持提供商供其分析。 我们可以在“文件”菜单下“新建”下的“跟踪模板”里建立一个新的模板,选择好对应的事件 类和数据列后将其保存,建议按应用场景取名以便是使用,如“存储过程跟踪模板”、“错 误定位跟踪模板”等。 模板 同样我们也可以修改保存在运行 SQL 事件探查器的本地计算机上的文件中的 模板以及从文件导出的模板。 如果没有记住当初用于创建跟踪的模板,或希望以后再次运行同一跟踪,则 可能需要从跟踪文件导出模板。修改模板属性(如事件类和数据列)的方法 与当初设置该属性的方法相同。可以添加和删除事件类和数据列,也可以对 筛选进行更改。修改模板后,以同一名称保存它将重写原来的模板。 当处理现有跟踪时,可以查看属性,但不能修改。 警告:使用相同的名称保存跟踪文件将重写原来的跟踪文件,这将导致任何当 初捕获的事件或已删除或筛选的数据列丢失 SQL 事件探查器术语 事 件 事件是在 Microsoft SQL Server 引擎中生成的操作。 例如: 登录连接、失败和断开。 Transact-SQL SELECT、INSERT、UPDATE 和 DELETE 语句。 远程过程调用 (RPC) 批处理状态。 存储过程的开始或结束。 SQL 批处理的开始或结束。 存储过程内的语句的开始或结束。 写入 SQL Server 错误日志的错误。 在数据库对象上获取或释放的锁。 打开的游标。 安全权限检查。 由事件生成的所有数据显示在单个行中的跟踪内 。该行包含详细描述 事件的数据列,称为事件类。 SQL 事件探查器监控事件分类 常用的事件分类: TSQL 事件类 TSQL 事件类是一个常用的事件,其对应的常用事件解释如下: TSQL事件对应数据列: 存储过程事件类 存储过程事件类是执行存储过程所产生的事件的集合,也是一个常用的事件类 ,其对应的 常用事件解释如下: 存储过程事件类 SP:Starting-表明存储过程已被启动的时间,其监视到的结果是整个存储过 程的调用,结 果形式如:exec Sa_MoveSaleDetail Sa_TempSaleDetail_GCCXL0, , , , , , , , 其中 Sa_MoveSaleDetail 为存储过程名称; exec为SQL的一个命令,可以理解为执行; Sa_TempSaleDetail_GCCXL0, , , , , , , , 传递给该存 储过程的参数; SP:Completed 、RPC:Starting 、RPC:Completed 返回的结果都与此类似。 存储过程事件类 SP:StmtStarting -表明正在启动存储过程内的某语句的时间,其监 视到的结果是一个存储过程内部的一条语句的执行,结果形式如: - Sa_MoveSaleDetail if ltrim(rtrim(chrwhere1 ) = newReport_ParameterFromTempTable 其中: - Sa_MoveSaleDetail指明该语句所属的存储过程; if ltrim(rtrim(chrwhere1 ) = newReport_ParameterFromTempTable 指的是执行的具体的SQL语句; SP:StmtCompleted返回的结果与此类似。 存储过程事件类 以上两部分的事件您可以理解为整体和局部的概念,也就是说一个是跟踪整 体的结果,一个是跟踪明细的结果。 如果是希望了解程序的流程,可以跟踪整体,知道其使用了那些存储过程即 可。然后再具体查看该存储过程,了解其内部处理流程; 此处插入说明一点,要查看某个存储过程的具体内容,可以直接到企业管理 器里找到该存储过程双击打开;也可以在查询分析器里利用系统存储过程 SP_HelpText来查 看,如前面说到的存储过程Sa_MoveSaleDetail,我们可以在查询分析器对应的 数据库下执行如下命令: SP_HelpText Sa_MoveSaleDetail 来查看其明细内容。但是要注意的一点是:必须该存储过程没有加密,否则无 法查看。 如果是跟踪错误,建议选择明细的跟踪,这样可以具体的定位到某个存储过 程里的某条语句出的错。 错误和警告事件类 错误和警告是在发生SQL Server错误或警告时产生的事件类集合(例如, 一个在编译存储过程中产生的错误,或者一个SQL Server中的异常错误), 其对应的常用事件解释如下: 错误和警告事件类 该事件类里面又以Exception 事件类为主要,基本上只要是SQL里面发生的错误 其都能跟踪得到,这为我们快速定位错误提供了简便而准确的方法,我们来看 下面的错误展示。 首先我们在运行一个跟踪,挑选出要跟踪的事件类为 SQL:BatchStarting; SQL:BatchCompleted; Exception; 数据列为默认的,我们再在查询分析器里执行一条SQL语句: Updaterdrecord setid=11 报错如下: 服务器: 消息 2601,级别 14,状态 3,行 1 不能在具有唯一索引 aaRdRecord_PK 的对象 RdRecord 中插入重复键的行。 语句已终止。 错误和警告事件类 停止跟踪,看看是否正确跟踪出错误: 错误和警告事件类 我们看到,没有任何问题,错误得以跟踪到,注意其上我以蓝色表注的语 句,其TEXTDATA的内容都是一致的,只是对应的事件类分别为 SQL:BatchStarting和 SQL:BatchCompleted,正好把EXCEPTION事件类对应的事件给包在中间,那么我 们就可以知道,引起错误的语句就是 Update rdrecord setid=11 了。怎么样,定位错误就是这么简单!我们把图再放在这里给大家对比一下看 看: SQL 事件探查器术语 筛选 当创建跟踪或模板时,可以定义筛选由事件收集的数 据的准则。 如果没有设置筛选,跟踪输出中将返回选定事件类的所 有事件。例如,可以将跟踪中的 Microsoft Windows 2000 用户名限制为特定用户,以将输出数据 如果跟踪变得太大,可以基于想要的信息进行筛选,以便 只收集事件数据的减少到感兴趣的那些用户。也可以只跟 踪对特定数据库的操作的信息,这样在多帐套的服务器上 就可以更快的收集到我们感兴趣的信息。 SQL 事件探查器术语 跟踪 跟踪基于选定的事件、数据列和筛选捕获数据。 例如,可创建模板监视异常错误。为此,应选择 跟踪 Exception 事件类以及Error、State 和 Severity 数据列,这些都是为了使跟踪结果提供 有意义的数据而需收集的。保存模板后,便可将 其作为跟踪运行,并且可收集关于服务器中发生 的任何 Exception 事件的数据。可保存此跟踪数 据,然后稍后重播或立即用于分析。 跟踪详解 启动、暂停和停止跟踪 使用 SQL 事件探查器时,启动跟踪将打开一个新的跟踪窗口(如果没有窗口 打开),并立即捕获数据。当使用 SQL Server 系统存储过程时,每次启用 SQL Server 实例时可手工或自动启动跟踪。一启跟踪,就会立即捕获数据。 启动跟踪后,只能修改跟踪的名称。 暂停跟踪可防止捕获更多的事件数据,直到重新启动。重新启动跟踪将继续 执行跟踪操作。先前捕获的所有数据都不丢失。重新启动跟踪时,从启动的 那一点起继续捕获数据。当暂停跟踪时,可以更改名称、事件、列和筛选。 但是不能更改要将跟踪发送到的目的地或服务器连接。 停止跟踪将停止捕获数据。一旦停止了跟踪,除非已将数据捕获到了跟踪文 件或跟踪表中,否则重新启动该跟踪将丢失以前捕获的数据。当停止跟踪时 ,将保留以前选择的所有跟踪属性。当停止跟踪时,可以更改名称、事件、 列和筛选。 说明:我们可以将跟踪的结果保存到文件里或者保存到数据库的表里。 需要说明一点的是,如果保存在文件里,那么您在使用查询功能时需要注意 一点:大小写敏感,也就是说查询区分大小写,如RDRECORD与rdrecord是不 同的内容。 而如果保存在表里的话则没有这种缺点,但是如果您希望保存在表里,最好 选择其他服务器上的数据库来保存,特别是一些对数据库操作频繁的动作, 如果保存在同一服务器上,也最好不要将结果表建立在目标数据库里,否则 将会严重影响效率。 跟踪详解 跟踪保存界面如图所示,注意红色标注: 跟踪详解 查看和分析跟踪 使用 SQL 事件探查器可以查看跟踪内捕获的事件数据。SQL 事件探查器基于定义 的跟踪属性显示数据。 分析 Microsoft SQL Server数据的一个方法是将数据复制到另一个程序,如 SQL 查询分析器。 使用 SQL 事件探查器可以打开保存的跟踪文件(后缀为.trc的跟踪文件) 。 可以用自定义的字体、字体大小以便有助于分析跟踪。 跟踪详解 重播跟踪 在创建或编辑跟踪时,可以保存跟踪供以后重播。SQL 事件探查器的特色是 有一个多线程播放引擎,它能模拟用户连接和 SQL Server 身份验证,使用 户得以重新产生跟踪内捕获的活动。因此,重播对解决应用程序或进程的问 题很有帮助。识别出问题并进行了纠正后,对纠正后的应用程序或进程运行 找到了潜在问题的那个跟踪,然后重播原来的跟踪并比较结果。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号