《性能工具介绍》课件_第1页
《性能工具介绍》课件_第2页
《性能工具介绍》课件_第3页
《性能工具介绍》课件_第4页
《性能工具介绍》课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

性能监测工具的介绍Oracle优化培训目标掌握Autotrace和TKPROF工具的使用方法理解工具中各种统计数据的含义议程Autotrace的使用TKPROF的使用议程Autotrace的使用TKPROF的使用阅读查询计划将查询计划转换成一个排序图表——估算树。Autotrace配置autotrace:1.以管理员登陆sqlplus(sysdba),执行@?/sqlplus/admin/plustrce2.运行grantplustracetopublic3.在各自的会话中运行@?/rdbms/admin/utlxplan4.启动autotraceAutotrace报告包括查询计划和统计信息。启动autotraceSetautotraceoff:不产生报告。Setautotraceon:查询正常运行,报告包括查询计划和统计信息。Setautotraceonexplain:查询正常运行,报告只包括查询计划。Setautotraceonstatistics:查询正常运行,报告只包括统计信息。Setautotracetraceonly:禁止结果输出,只显示报告信息。Setautotracetraceonlystatistics:只显示报告中的统计信息。Setautotracetraceonlyexplain:只显示报告中的查询计划。查看autotrace报告(演示)Autotrace报告的组成部分执行计划统计信息执行计划Cost:CBO赋予查询计划的每个步骤的成本。Card:特定的查询计划步骤将输出的记录行数的估计。Bytes:CBO预测的每一个步骤将返回的数据字节数量。统计信息介绍Recusivecalls为执行你的SQL语句而引起运行其他SQL语句的数目(递归调用SQL语句的次数)。引起递归调用次数多的原因:1.硬分析2.PL/SQL函数调用更改中产生的副作用,如触发器、基于函数的索引空间请求:在响应对空间的请求时,由于磁盘排序或对需要扩展的表进行了大量更改,会出现大量的递归SQL。对于字典管理的表空间是用数据表进行管理的,扩展时需要查询或修改对应的表。硬分析如果递归调用次数开头很高,可以运行相应的查询,看看该统计数据是否仍然很高。若不高,则表明递归SQL是由于硬分析造成。关于硬分析的详细内容在下一章讲述。看例子:Altersystemflushshared_pool;Setautotracetraceonlystatistics;Select*fromscott.emp;Select*fromscott.emp;Dbblockgets和consistentget两个数据描述了逻辑IO读取数Dbblockget:当前方式的读取是该块存存在时检索它,在更改语句中最常见,因为我们应该只更改该块的最新的拷贝。Consisitentget:一致性读取是以“读一致性”方式从缓冲区高速缓存中检索块并且可能会包括读取回退段,查询通常执行“一致性读取”。Physicalreads物理读取统计是对你所执行的查询需要多少实际IO或物理IO的一个度量两类常见的物理IO:从数据文件中读取数据:因为对数据文件操作IO以检索索引和表数据都是先把某块放进高速缓存中,然后执行一个逻辑IO检索该块,所以这些操作的后面都跟一个逻辑IO。从TEMP中直接读:当排序区或散列区不足以支持完整的排序、散列时,oracle把某些数据交换到TEMP中再取回它,这种物理读将绕过高速缓存并且不会引起逻辑IO。Redosize重做尺寸统计信息显示在执行过程中产生了多少重做数据。通常在对表的数据进行增、删、改的时候会产生重做信息。SQL*Net统计三部分:通过SQL*Net从客户机中接收的字节数通过SQL*Net发送给客户机的字节数SQL*Net到客户机的往返次数注意:为减少该统计数据量,查询语句中只返回必要的列,这样可以提高效率。

排序及已处理的行Sorts(memory):显示在内存中处理排序的总次数。Sorts(disk):显示在临时表空间中进行排序的次数。Rowsprocessed:显示受影响的行数。议程Autotrace的使用TKPROF的使用TKPROFTkprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。一旦启动跟踪,oracle将所有的SQL和应用程序使用的顶层PL/SQL调用记录到服务器上的跟踪文件中(是数据库服务器,不是客户机)。使用TKPROF的一般步骤启动定时统计信息启动对session的跟踪命令获取生成的跟踪文件使用TKPROF命令把跟踪文件转换成容易阅读的格式启动会话跟踪启动定时统计:

altersession(system)settimed_statistics=true;在session打开跟踪设置(三种方式):1)Altersessionsetsql_trace=true2)dbms_session.set_sql_trace(TRUE);3)用事件打开和关闭:

altersessionsetevents'10046tracenamecontextforever,level<N>';

altersessionsetevents'10046tracenamecontextoff';Level<N>1:启动标准SQL_TRACE工具,和sql_trace=true一样;4:启动SQL_TRACE并捕捉跟踪文件中的绑定变量;8:启动SQL_TRACE并捕捉跟踪文件中的等待事件;12:启动SQL_TRACE并捕捉跟踪文件的绑定变量和等待事件。启动TKPROF(续)以dba身份登陆监测其他session1.使用一下语句查询需要监测的session的sid和serial#selects.sid,s.serial#fromv$sessions2.dbms_system.set_sql_trace_in_session(sid,serial#,TRUE)—false为关闭跟踪。获取存放跟踪文件的路径跟踪文件存放在oracle主目录\admin\数据库实例名\udump下的trc文件查看跟踪文件的存放目录select*fromv$parameterwhere

name='user_dump_dest‘修改跟踪文件的存放目录altersystemsetuser_dump_dest='c:\temp';

使用TKPROF命令转换格式tkproftracefileoutputfile[explain=][table=][print=][insert=][sys=][sort=]其中比较有用的一个排序选项是fchela,即按照elapsedtimefetching来对分析的结果排序(记住要设置初始化参数time_statistics=true),生成的.prf文件将把最消耗时间的sql放在最前面显示。

查看TKPROF报告包括一下内容:查询和执行统计查询环境查询计划等待事件查询和执行统计

语句执行的三个阶段:1.Parse(分析):此阶段oracle在共享池中找到(软分析)和创建该查询的新计划(硬查询)的所在。2.Execute(执行):此阶段是由oracle在该查询的OPEN或EXECUTE语句所做的工作,通常为增、删、改语句的工作所在。3.Fetch(提取):对于select语句,大多数工作在此阶段进行。报告的顶部标题COUNT:这个语句被parse、execute、fetch的次数。CPU:这个语句对于所有的parse、execute、fetch所消耗的cpu的时间,以秒为单位。ELAPSED:这个语句所有消耗在parse、execute、fetch的实际总的时间。DISK:执行物理IO的次数QUERY:检索一致方式的块时执行逻辑IO的次数CURRENT:以当前方式检索块时执行逻辑IO的次数ROWS:被处理或受影响的行数。查询环境Missesinlibrarycacheduringparse:0如果该值为0则说明该查询通过了软分析,即在共享池中找到该查询。Optimizer优化程序目标仅显示在此查询分析时优化程序目标的设置值:如CHOOSE、RULE、FIRST_ROWS、ALL_ROWS。查询计划和等待事件需注意的事件dbfilescatteredread这种情况通常显示与全表扫描相关的等待。当数据库进行全表扫时,基于性能的考虑,数据会分散(scattered)读入BufferCache。如果这个等待事件比较显著,可能说明对于某些全表扫描的表,没有创建索引或者没有创建合适的索引,我们可能需要检查这些数据表已确定是否进行了正确的设置。

需注意的事件(续)dbfilesequentialread这一事件通常显示与单个数据块相关的读取操作(如索引读取)。如果这个等待事件比较显著,可能表示在多表连接中,表的连接顺序存在问题,可能没有正确的使用驱动表;或者可能说明不加选择地进行索引。在大多数情况下我们说,通过索引可以更为快速的获取记录,所以对于一个编码规范、调整良好的数据库,这个等待很大是很正常的。但是在很多情况下,使用索引并不是最佳的选择,比如读取较大表中大量的数据,全表扫描可能会明显快于索引扫描,所以在开发中我们就应该注意,对于这样的查询应该进行避免使用索引扫描。小结TKPROF可以对某个会话进行跟踪,它会对某个时间段内该会话所执行的SQL语句进行统计,所以通过它可以有效地查找到有问题的语句。而Autotrace只针对某条语句的执行情况进行统计。实际上,我们应该先使用TKPROF或其他监测工具找出有问题的SQL语句,然后把其抽取出来进行优化,这时才应该使用autotrace。谢谢!1、字体安装与设置如果您对PPT模板中的字体风格不满意,可进行批量替换,一次性更改各页面字体。在“开始”选项卡中,点击“替换”按钮右侧箭头,选择“替换字体”。(如下图)在图“替

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论