![OracleSQL跟踪技术-(技术篇)-TD-V10_第1页](http://file4.renrendoc.com/view/ba44f62bbfd6223cef14294ed5630f46/ba44f62bbfd6223cef14294ed5630f461.gif)
![OracleSQL跟踪技术-(技术篇)-TD-V10_第2页](http://file4.renrendoc.com/view/ba44f62bbfd6223cef14294ed5630f46/ba44f62bbfd6223cef14294ed5630f462.gif)
![OracleSQL跟踪技术-(技术篇)-TD-V10_第3页](http://file4.renrendoc.com/view/ba44f62bbfd6223cef14294ed5630f46/ba44f62bbfd6223cef14294ed5630f463.gif)
![OracleSQL跟踪技术-(技术篇)-TD-V10_第4页](http://file4.renrendoc.com/view/ba44f62bbfd6223cef14294ed5630f46/ba44f62bbfd6223cef14294ed5630f464.gif)
![OracleSQL跟踪技术-(技术篇)-TD-V10_第5页](http://file4.renrendoc.com/view/ba44f62bbfd6223cef14294ed5630f46/ba44f62bbfd6223cef14294ed5630f465.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、()Oracle SQL跟踪技术在职员工(技术篇)部 门:培训部日 期:2012.03.23本文档及其所含信息为内部保密材料,由北京九恒星科技股份有限公司拥有,公司专属知识产权未经书面授权,不得对外泄露 COPYRIGHT 保留所有权利课程修订订修订编号修订作者变更页码版本号变更日期课程状态备注第一次郭鹏1-74V1.02012-03-26待评审第二次第三次第四次第五次第六次课程介绍绍您将掌握SQL跟踪技术术原理、方法及及过程,熟悉动动态性能能视图表表的作用用及用法法,掌握握SQLTrace、TKPROF工具应用用,并能能分析各各类ORACLE语句问题题,为实实际工作作做到方方法的指指引。课程
2、名称OracleSQL跟踪技术术培训目标标实施、开开发、测试岗位各级级技术人员员培训对象象2个小时培训课时时培训方式式面授课程层级级初、中级级培训内容容纲要通过本次次培训,您将学学习到以以下核心心内容:数据库连连接体系系结构客户端、服务器器SQL跟踪原理理及过程程方法SQLTrace工具介绍绍、使用用方法及及实践TKPROF工具介绍绍、使用用方法及及实践目录录TABLEOFCONTENTS一、数据库库连接体体系介绍绍二、SQL跟踪原理理解析三、Oracle“SQLTarce”工具用用法四、Oracle“TKPROF”工具用用法五、Q &A单击此处处添加段段落文字字内容DB网络连接接架构多进程(
3、单线程) P/T单进程多多线程P/T多进程多多线程P/T流行单击此处处添加段段落文字字内容三层技术术架构DatabaseMCVCacheAJAX(AsynchronousJavaScript andXML)JPA(HibernateEntityManager)JSPHTMLEXTServlet ControllerQuartzJBMPRPCJMS业务逻辑辑SpringJersey(JAXRS)WEB服务器单击此处处添加段段落文字字内容DB连接模式式OracleServer对外提供供两种服服务的链链接:共享服务务器模式式多个连接过过来,则则后台只只有一个个进程进进行服务务。专有服务务器模式式一个
4、连接过过来,则则后台生生成一个个单独的的进程进进行服务务。(selectsid,serial#,username, status,program,serverfrom v$sessionwhereusernameisnotnull;)单击此处处添加段段落文字字内容DB连接模式式DB采用专有有服务器器模式:目录录TABLEOFCONTENTS二、SQL跟踪原理理解析一、数据据库连接接体系介介绍三、Oracle“SQLTarce”工具用用法四、Oracle“TKPROF”工具用用法五、Q &A单击此处处添加段段落文字字内容任务假如很多多用户访访问DB服务器,我如何何知晓:是那个用用户访问问DB服务
5、器?那个用户户对应那那个事务务?那个事务务执行很很慢?(如何找到对应应SQL语句)单击此处处添加段段落文字字内容stat查询两台台计算机机TCP、UDP连接情况况信息Linux/UNIX下:netstatantpWin下:netstat -ano|findstr TCP工具单击此处处添加段段落文字字内容跟踪、监监控客户户端连接接db服务器过过程步骤一:通过客客户端连连接DB服务器单击此处处添加段段落文字字内容跟踪、监监控客户户端连接接db服务器过过程步骤二:从DB服务器查查询数据据库客户户端连接接信息。命令为:netstatantp|more如下图红红框所示示,查看看单击此处处添加段段落文字字
6、内容跟踪、监监控客户户端连接接db服务器过过程ps-ef|grep4311ps-ef|grep 4317此时通过过在DB服务器端端运行netstat命令,我我们找到到与客户户端通信信的DB服务器端端进程信息:4311和4317则:单击此处处添加段段落文字字内容跟踪、监监控客户户端连接接db服务器过过程步骤三:通过在客户端端键入如如下命令令,查看看客户端端连接进进程信息及客户端进程信息:netstat bnetstat-ano单击此处处添加段段落文字字内容工具介绍绍采用工具具:列出当前前连接DB的用户数数列出当前前DB有多少事事务查看当前前执行的的SQL语句DB服务器进进程信息息单击此处处添加段
7、段落文字字内容1.v$session数据字典典关注点:SADDR:Session addressSID:唯一标识识Session identifierPADDR:拥有这个个会话的的进程地地址USERNAME:用户名空空的的标识是是oracle的实例,后台进进程的process内部sessionPROCESS:操作系统统客户机机进程IDMACHINE:客户端machine name。SQL_ADDRESS:指当前执执行的SQL语句的地地址PREV_SQL_ADDR:找到上一一次已经经执行过过的SQL语句地址址SERVER:servertype(dedicated or shared)OSUSER
8、:客户端操操作系统统用户名名PROGRAM:客户端应应用程序序STATUS:Statusofthe session:ACTIVE-Session currentlyexecutingSQLINACTIVE-等待操作作KILLED-被标注为为删除selectsaddr,sid,paddr,PROCESS ,username,statusfromv$session;v$session单击此处处添加段段落文字字内容1.v$transaction数据字典典关注点:ADDR:标识这个个事务的的唯一地地址SES_ADDR:用户会话话对象地地址与与session的SADDR挂钩selectADDR,SES_
9、ADDRfromv$transaction;v$transaction单击此处处添加段段落文字字内容1.v$process数据字典典:包含含oracle运行的所所有进程程信息。常被用用于将oracle或服务进进程的操操作系统统进程ID与数据库库session之间建立立联系。关注点:ADDR:进程对象象地址SPID:操作系统统进程IDPID:Oracle进程identifierUSERNAME:操作系统统进程的的用户名名。并非非Oracle用户名。PROGRAM:进程正在在执行的的程序,和v$session中的program类似。selectaddr,spidfrom v$process;v$p
10、rocess单击此处处添加段段落文字字内容1.v$sql数据字典典关注点:sql_text: 前1000个字符addressselectsql_text, addressfromv$sql;v$sql单击此处处添加段段落文字字内容查看当前前所有非非系统用用户的连连接DB信息:spid(操作系系统进程程)-连接DB客户端的的进程号号(netstatantp查)machine - DB所在服务务器机机器名selectp.spid,sid,paddr,gram,osuser,machine,PROCESS ,s.username,statusfrom v$sessions,v$proces
11、sp where p.addr=s.paddr ands.username is notnull;练习单击此处处添加段段落文字字内容动态性能能视图分分析获取客户户端、服务器器端进程程信息,结合db数据字典典,将获取一系列数据库信息:#单击此处处添加段段落文字字内容跟踪、监监控客户户端连接接db服务器过过程步骤四:1.查询v$transaction数据字典典,查看当前前存在的的事务信信息及SES_ADDR如下:selectaddr,ses_addrfromv$transaction;2.根据v$transaction中SES_ADDR字段,从从v$session查询如下下信息及及对象的的PADD
12、R:selectsaddr,sid,paddr,username,statusfrom v$session;selectsaddr,sid,paddr,serial#,username,status,prev_sql_addr,prev_hash_value fromv$session;单击此处处添加段段落文字字内容跟踪、监监控客户户端连接接db服务器过过程3.根据v$session中信息及及PADDR,从v$process表中查询询ADDR及服务器端对应的的进程SPID:selectaddr,spidfrom v$process;单击此处处添加段段落文字字内容跟踪、监监控客户户端连接接db服
13、务器过过程4.根据从v$process表中查询询到的SPID,通过如如下查询询该DB服务器运行的的进程信息息:单击此处处添加段段落文字字内容跟踪、监监控客户户端连接接db服务器过过程5.在DB服务器端端运行命命令,如如下所示示:单击此处处添加段段落文字字内容步骤五:从v$session表中获取取SQL_ADDRESS字段与PREV_SQL_ADDR字段。selectsid,prev_sql_addr,username,status fromv$session;如何知道道该进程程执行的的SQL语句单击此处处添加段段落文字字内容如何知道道该进程程执行的的SQL语句步骤六:根据v$session表中
14、查询询到的PREV_SQL_ADDR字段,再再从v$sql表中查询到如如下信息息。selectsql_text, addressfromv$sqlwhereaddress=3091B2DC;最后就找找到了那那个用户户从什么么客户端端发送什什么样的的语句到到服务器器端什么么进程去去处理的的整个过过程,从从而获取取。单击此处处添加段段落文字字内容跟踪语句句小结-查找sesssionselectsid,serial#,username,status,machine,osuser, program, logon_timefrom v$sessionwherestatus=upper(INACTIVE)
15、orderbylogon_time asc;selectaddr,ses_addrfromv$transaction;selectsaddr, sid,serial#,username, statusfrom v$session;selectsaddr, sid,serial#,username, status,prev_sql_addr,prev_hash_value fromv$session;-查找活动动用户客客户端进进程号,程序、tranactionselectsid,username,MACHINE,process,programfrom v$transactiont,v$sessi
16、onswheret.ses_addr=s.saddr;selectaddr,pid,spid,program fromv$process;selectsaddr, sid,paddr, username,statusfromv$session;-根据sid,查找相相应inactivesessions对应的sql操作selectsql_text, address, hash_valuefrom v$sql q, v$sessionswheres.sid=144and s.prev_sql_addr=q.address;单击此处处添加段段落文字字内容跟踪语句句小结-查看当前前用户的的spid:se
17、lectspidfrom v$processp,v$sessionswheres.audsid=userenv(sessionid)ands.paddr=p.addr;selectspidfrom v$processp joinv$session sonp.addr=s.paddrands.audsid=userenv(sessionid);查看当前前用户的的sid和serial#:selectsid,serial#,statusfromv$sessionwhereaudsid=userenv(sessionid);查看当前前用户的的tracefile路径:selectp.value|t.in
18、stance|_ora_ | ltrim(to_char(p.spid,fm99999) | .trcfrom v$processp,v$sessions,v$parameterp,v$threadtwherep.addr=s.paddr ands.audsid= userenv(sessionid) =user_dump_dest;单击此处处添加段段落文字字内容跟踪语句句小结-已知spid,查看当当前正在在执行或或最近一一次执行行的语句句:select/*+ ordered*/sql_textfromv$sqltextsqlwhere(sql.hash_value, sql
19、.address)in(selectdecode(sql_hash_value,0,prev_hash_value, sql_hash_value),decode(sql_hash_value, 0, prev_sql_addr, sql_address)from v$sessions where s.paddr=(select addrfromv$processpwherep.spid=to_number(&pid)orderbypieceasc;-查看锁和和等待:coluser_name formata10colownerformat a10colobject_nameformat a15
20、colsid format999999colserial#format999999colspidformata6select/*+ rule*/lpad( , decode(l.xidusn,0,3,0) | l.oracle_username user_name,o.owner,o.object_name,o.object_type,s.sid,s.serial#,p.spidfrom v$locked_objectl,dba_objectso,v$sessions,v$process pwherel.object_id= o.object_id andl.session_id=s.sida
21、nds.paddr= p.addrorderbyo.object_id,xidusn desc;目录录TABLEOFCONTENTS三、Oracle“SQLTarce”工具用用法一、数据据库连接接体系介介绍二、SQL跟踪原理理解析四、Oracle“TKPROF”工具用用法五、Q &A单击此处处添加段段落文字字内容Oracle“SQLTrace”介绍SQL_TRACE是Oracle提供的用用于进行行SQL跟踪的手手段,是是强有力力的辅助助诊断工工具.在日常的的数据库库问题诊诊断和解解决中,SQL_TRACE是非常常常用的方方法。利用Oracle的SQLTRACE实用程序序可以对对指定的的查询、批
22、处理理进程和和整个系系统做时时间统计计。可以以帮助我我们彻底底地找到到系统中中可能存存在的瓶瓶颈。SQLTRACE有如下的的功能:SQLTRACE运行这个个查询并并输出一一个所执执行的Oracle查询(或一系列查查询)的统计信信息。SQLTRACE帮助开发发人员分分析查询询的每个个部分。用户跟踪踪文件包包括:所有的用用户发出出的SQL语句的信信息,包包括:每每条语句句的执行行时间和和占用资资源的数数量。因为跟踪踪文件的的信息是是没有格格式化的的原始信信息,所所以用TKPROF工具来转转换信息息,使其其易于理理解。单击此处处添加段段落文字字内容Oracle“SQLTrace”介绍通过SQLTra
23、ce可收集的的信息包包括:解析、执执行、返返回数据据的次数数cpu和执行命命令的时时间物理读和和逻辑读读的次数数系统处理理的记录录数SQL查询执行行计划状状况需要调整整的语句句符合以以下几点点:CPU占用过多多Parse,Execute,Fetch花费太多多时间DISK读取太多多,query/current(SGA)中数据块块读取太太少访问许多多块,只只返回2行单击此处处添加段段落文字字内容设置跟踪踪参数SQL_TRACE可以作为为初始化化参数在在全局启启用,也也可以通通过命令令行方式式在具体体session启用。1设置实例例级跟踪踪参数(在全局启启用)在全局启启用SQL_TRACE会导致所所
24、有进程程的活动动被跟踪踪,包括括后台进进程及所所有用户户进程,这通常常会导致致比较严严重的性性能问题题,所以以在生产产环境中中要谨慎慎使用,这个参参数在10g之后是动动态参数数,可以以随时调调整,在在某些诊诊断中非非常有效效。设置init.ora中的TIMED_STATISTICES(用于启启动或禁禁止对定定时统计计信息(如CUP时间、占占用时间),以及及动态性性能表中中多种统统计信息息的收集集功能。 )MAX_DUP_FILE_SIZE(若为UNLIMITED则意味着着没有上上限。)USER_DUMP_DEST(设置跟跟踪文件件的存储储位置。默认为为admin/用户/udump)设置show
25、 parameterUSER_DUMP_DESTshow parameterMAX_DUMP_FILE_SIZEshow parameterTIMED_STATISTICSshow parameterSQL_TRACEaltersession setMAX_DUP_FILE_SIZE/timed_statistics true;altersystemsetMAX_DUP_FILE_SIZE/timed_statistics false;altersystemset user_dump_dest=newdir;altersystemset sql_trace=true;altersystemse
26、t sql_trace=false;单击此处处添加段段落文字字内容设置跟踪踪参数2设置跟踪踪参数(会话级启用)大多数时时候我们们使用sql_trace跟踪当前前进程.通过跟踪踪当前进进程可以以发现当当前操作作的后台台数据库库递归活活动(这在研究究数据库库新特性性时尤其其有效),研究SQL执行,发发现后台台错误等等。grantselectany dictionaryto用户名;设置会话话级跟踪踪参数如如下:SQL showparameter USER_DUMP_DESTNAMETYPEVALUE-user_dump_deststringC:oracleadminora92udumpSQL-步骤1
27、:设置SQL_TRACE=FALSESQL showparameter SQL_TRACENAMETYPEVALUE-sql_tracebooleanFALSESQLSQLALTERSESSIONSETSQL_TRACE=TRUE或SQL EXECUTEdbms_session.set_sql_trace(true);单击此处处添加段段落文字字内容启动SQL跟踪3启动会话话级的跟跟踪由于SQL_TRACE实用程序序会增加加系统的的开销,建议用用完后及及时设置置为FALSE。如果将整整个实例例级都进进行跟踪踪的话,则在修修改SPFILE参数sql_trace=true。这样会会使系统统付出更更大
28、的代代价。SQLaltersession setSQL_TRACE=TRUE;SQL-不用可设设置为:SQLaltersession setSQL_TRACE=FALSE;单击此处处添加段段落文字字内容启动SQL跟踪4确定被跟跟踪所产产生文件件的名称称1)先查询询实例名名:SQLselect会话的数数据实例例名:|name实例名fromv$database;单击此处处添加段段落文字字内容启动SQL跟踪4确定被跟跟踪所产产生文件件的名称称2)查询自自己会话话的SID和SERIAL#:selectsubstr(a.spid,1,9) spid,substr(b.sid,1,5)sid,substr
29、(b.serial#,1,5)ser#,substr(b.machine,1,6)box,substr(b.username,1,8) username,substr(b.osuser,1,8)os_user,substr(gram,1,30) programfrom v$sessionb,v$processawhereb.paddr =a.addr andtype=USERorderbyspid;单击此处处添加段段落文字字内容启动SQL跟踪4确定被跟跟踪所产产生文件件的名称称3)启动会会话级跟跟踪:SQL showuserUSER is“SYSSQLaltersession set
30、SQL_TRACE=TRUE;Session altered.Elapsed:00:00:00.03SQL跟踪用户户名为SYS;被跟踪的的文件的的名字可可能是:NSTC_5379.trc单击此处处添加段段落文字字内容启动SQL跟踪5开始运行行应用以以产生跟跟踪文件件:假设用户户发出下下面语句句:SQL select*from t;SQL insertinto tvalues(10,地球人);SQL select* fromtwhereid= 10;单击此处处添加段段落文字字内容启动SQL跟踪6路径找产产生跟踪踪文件:所产生的的文件为为NSTC_ora_5379.trc则:设置置会话级级跟踪为为
31、FALSE:SQLSQL showuserUSER is“sysSQLaltersession setSQL_TRACE=FALSE;Session altered.Elapsed:00:00:00.00单击此处处添加段段落文字字内容跟踪其他他用户进进程在很多时时候我们们需要跟跟踪其他他用户的的进程,而不是是当前用用户,可可以通过过Oracle提供的系系统包DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION来完成SET_SQL_TRACE_IN_SESSION过程序要要提供三三个参数数:参数名称参数类型In/Out Default?SIDNUMBERINSERIAL# N
32、UMBERINSQL_TRACE BOOLEANINEXECUTE dbms_system.set_sql_trace_in_session(session_id,serial_id,true);单击此处处添加段段落文字字内容10046事件说明明10046事件是Oracle提供的内内部事件件,是对对SQL_TRACE的增强.10046事件可以以设置以以下四个个级别:1 -启用标准准的SQL_TRACE功能,等价于sql_trace4 -Level1加上绑定定值(bindvalues)8 -Level1+等待事件件跟踪12- Level 1+Level4 +Level8在全局设设置在参数文文件中
33、增增加:event=10046tracenamecontext forever,level12此设置对对所有用用户的所所有进程程生效、包括后后台进程程.在会话设设置SQL alter sessionset events10046tracenamecontext forever;SQL alter sessionset events10046tracenamecontext forever, level 8;SQL alter sessionset events10046tracenamecontext off;单击此处处添加段段落文字字内容10046事件说明明对其他用用户session设置ex
34、ec dbms_system.set_ev(146,4,10046,4,n6user);设置exec dbms_system.set_ev(146,4,10046,0,n6user);停止以上前两两个参数数分别为为sid,serial#selectsid,serial#,usernamefromv$sessionwhereusernameisnot null;单击此处处添加段段落文字字内容示例一通过v$session获得sid、serial#等信息,确认要要跟踪的的用户SQL selectp.spid,s.sid,s.serial#,gram,osuser,machine,PROCE
35、SS,s.username,status fromv$session s,v$process pwherep.addr=s.paddrand s.usernameisnot null;2.设置跟踪踪:SQL execdbms_system.set_sql_trace_in_session(145,10, true)PL/SQLprocedure successfullycompleted.可以等候候片刻,跟踪session执行任务务,捕获sql操作.3.停止跟踪踪:SQL execdbms_system.set_sql_trace_in_session(145,10, false)PL/SQL
36、procedure successfullycompleted.单击此处处添加段段落文字字内容示例二如何跟踪踪某应用用下发生生的sql操作细节节1.找出应用用的sid和serial#selectsid,serial#,usernamefromv$sessionwherelower(program)like%sqlplus%;2.开始跟踪踪SQL execdbms_system.set_sql_trace_in_session(148,57, true)期间做点点关于这这个应用用的操作作(保证证和数据据库能有有交互)单击此处处添加段段落文字字内容示例二3、停止跟跟踪,在在user_dump_de
37、st目录下会会生成跟跟踪的trace文件SQL execdbms_system.set_sql_trace_in_session(148,57, false)4、找出并并进入user_dump_dest目录,最最后生成成那个文文件就是是要用的的trace文件SQL setlines1024SQL showparameter user_dump_dest单击此处处添加段段落文字字内容示例二5、使用tkprof格式化trace文件,sys=no的意思是是不查看看sys用户的操操作$ tkproforcl_ora_24884.trcreport.txtsys=no6、 查看看格式化化后的文文件rep
38、ort.txt,里头就就有跟踪踪期间发发生的所所有存储储过程(存储过过程中执执行的sql操作也会会逐条显显示)和和sql操作,还还有各sql执行的统统计数据据,可以以了解哪哪些sql快,哪些些慢。跟踪完毕毕。目录录TABLEOFCONTENTS四、Oracle“TKPROF”工具用用法一、数据据库连接接体系介介绍二、SQL跟踪原理理解析三、Oracle“SQLTarce”工具用用法五、Q &A单击此处处添加段段落文字字内容TKPROF介绍Tkprof是一个用用于分析析Oracle跟踪文件件并且产产生一个个更加清清晰合理理的输出出结果的的可执行行工具。如果一一个系统统的执行行效率比比较低,一个比
39、比较好的的方法是是通过跟跟踪用户户的会话话并且使使用Tkprof工具使用用排序功功能格式式化输出出,从而而找出有有问题的的SQL语句:系统对SQL语句进行行跟踪后后,在产产生USER_DUMP_DEST路径产生生了.TRC文件确定结束束跟踪后后,可用用TKPROF实用程序序进行分分析;TKPROF将跟踪文文件作为为输入文文件,在在经过格格式化后后产生输输出文件件;由于跟踪踪文件是是一系列列的文件件,在使使用TKPROF时可以对对单个文文件进行行格式化化,也可可以将所所有的跟跟踪文件件串在一一起在进进行格式式化;逐一对单单个文件件进行TKPROF,分别产产生相应应的输出出文件;单击此处处添加段段
40、落文字字内容TKPROF作用标记需要要调整的的语句使用TKPROF格式化的的文件很很容易看看出需要要调整的的SQL语句。查查找的依依据是:*耗费大大量的CPU资源*花费较较长的时时间进行行SQL分析、执执行和获获取*从磁盘盘读大量量的数据据块,而而从SGA区读的数数据很少少*访问大大量的数数据块但但只返回回一点数数据一旦找到到这些语语句就可可以用执执行计划划工具来来进一步步决定为为什么这这些语句句性能这么低低了。单击此处处添加段段落文字字内容TKPROF工具介绍绍TKPROF命令语法法:附加参数数:filename1指定的输输入文件件,可以以是多个个文件联联起来。Filename2格式化输输出
41、文件件。SORT在输出文文件前先先排序。如果省省去则按按照实际际使用的的顺序输输出到文文件中。排序选选项有以以下多种种:PRSCNT语句解析析的数目目PRSCPU语句解析析所占用用的CPU时间PRSELA语句解析析所占用用的时间间PRSDSK语句解析析期间,从磁盘盘进行物物理读的的数目TKPROFfilename1,filename2 SORT= opion,optionPRINT= integer AGGREGATE= YES| NO INSERT= filename3 SYS= YES |NO TABLE =schema.table | EXPLAIN=user/password RECO
42、RD=filename单击此处处添加段段落文字字内容TKPROF工具介绍绍附加参数数用于指指定期望望的信息息。这些些选项如如下所示示:EXPLAN为跟踪文文件中的的每条语语句生成成一个执执行计划划。产生生的结果果保存在在指定模模式的PLAN_TABLE中,该模模式在命命令中给给出,即即命令中中必须要要给出用用户名和和口令。TABLE指定执行行计划保保存的表表名称,替换缺缺省的PLAN_TABLE表名。SYS表明是否否格式化化的文件件包括递递归的SQL语句。SORT表明格式式化的文文件信息息排序的的规则。RECORD指定跟踪踪文件中中的SQL语句写入入哪一个个文件。使你能能将SQL语句与附附加的
43、资资源使用用信息分分开。PRINT指定格式式化的跟跟踪文件件最多可可以写入入的SQL语句的数数量。INSERT执行时创创建一个个脚本,用于生生成一个个TKPROF_TABLE表。AGGREGATE决定是否否将多个个执行相相同语句句分析的的结果合合并。单击此处处添加段段落文字字内容格式后信信息内容容解析表式统计计信息PARSE将把SQL语句转化化为执行行规划,其中包包括对安安全授权权的检查查,以及及对存在在表、列列和其他他访问对对象进行行检查。EXECUTE由ORACLE进行语句句执行。对于INSERT、UPDATE、DELETE的语句,将对数数据进行行修改;对于SELECT语句,将将对所选选行
44、进行行确定。FETCH将检查出出查询的的返回行行,只有有SELECT语句能够够执行取取数据的的操作。单击此处处添加段段落文字字内容格式后信信息内容容解析表统计信信息:COUNT:语句解析析、执行行或取数数据等执执行的数数据库调调用数量量;CPU某条语句句进行解解析、执执行和取取数据等等数据库库调用所所占用地地时间,单位为为秒;ELAPSED某条语句句进行解解析、执执行和取取数据等等处理数数据库调调用花费费的总的的时间,单位为为秒;DISK对于所有有语句解解析、执执行和取取数据等等调用,从磁盘盘数据文文件中物物理读取取的数据据块数目目;注意意:这不不是物理理I/O操作的数数量,如如果这个个值大于
45、于逻辑读读的数量量(disk query +current),这意味味着数据据块填充充进了临临时表空空间;QHERY以一致模模式从高高速缓存存逻辑读读取的块块数量。通常,这类型型的逻辑辑读用作作查询。CURRENT在当前模模式下从从高速缓缓存逻辑辑读取的的块数量量。这类类逻辑读读被INSERT、DELETE、UPDATE等语句所所使用。ROWS SQL语句所处处理行的的总数目目,它并并不包括括SQL语句的子子查询所所处理的的行数。对于INSERT、DELETE、MERGE以及UPDATE等语句来来说,这这是所影影响的行行数量。单击此处处添加段段落文字字内容格式后信信息内容容解析单击此处处添加段
46、段落文字字内容格式后信信息内容容解析对于每个个行源操操作来说说,提供供如下的的运行时时统计:cr是一致性性模式下下逻辑读读出的数数据块数数。pr是从磁盘盘物理读读出的数数据块数数。pw是物理写写入磁盘盘的数据据块数。time是以微秒秒表示的的总的消消逝时间间。注意意根据统统计得到到的值不不总是精精确的。实际上上,为了了减少开开销,可可能用了了采样。cost是操作的的评估开开销。这个值只只有在Oracle11g才提供。size是操作返返回的预预估数据据量(字节数)。这个值只只有在Oracle11g才提供。card是操作返返回的预预估行数数。这个值只只有在Oracle11g才提供。单击此处处添加段
47、段落文字字内容格式后信信息内容容解析输出文件件的结尾尾给出了了所有关关于跟踪踪文件的的信息:跟踪文件件名称、版本号号、用于于这个分分析所使使用的参参数sort的值。所有会话话数量与与SQL语句数量量。显示组成成跟踪文文件的行行数所有SQL语句用去去的时间间(毫秒秒)。注意:知知道整个个跟踪文文件消耗耗了多少少时间是是很关键键单击此处处添加段段落文字字内容案例解析析例1:$tkprof ora_1234.trctrace.txtsys=no explain=scott/111111该命令将将忽略原原始文件件中的递递归SQL;在格式式化的跟跟踪文件件中包括括每条SQL语句的执执行计划划PLAN_T
48、ABLE依赖于用用户JOE模式。例2:$tkprof ora_1234.trctrace.txtprint=10record=sql.txt该命令将将翻译跟跟踪文件件ora_1234.trc并保存头头10条SQL语句到输输出文件件sql.txt,用于保保存原始始跟踪文文件的头头10条SQL语句。例3:$tkprof ora_1234.trctrace.txtinsert=trace.sqlsort=fchrow该命令将将翻译跟跟踪文件件ora_1234.trc并保存到到输出文文件trace.txt;创建第第二个文文件trace.sql,用于保保存生成成TKPORF_TABLE表的SQL命令。如
49、如果没有有排序参参数fchrow,TKPROF将会按照照执行的的顺序输输出到trace.txt文件中去去。例4:tkprofnstc_ora_4408.trc2.txtAGGREGATE=no合并执行行相同的的结果单击此处处添加段段落文字字内容解读与分分析格式式化文件件(示例例一)被TKPROF分析的格格式化文文件,如如下所示示:单击此处处添加段段落文字字内容解读与分分析格式式化文件件(示例一一)分析:跟踪文件件中发现现,第三三条语句句被分析析了一次次,执行行了五次次,并执执行了250次获取操操作。这个过程程耗费了了CPU0.18秒的时间间,整个个语句执执行花费费了0.20秒的时间间。它需需要从磁磁盘读取取54个数据块块,从SGA读取266个数据块块并返回回245行数据在最后一一行显示示所有统统计信息息。单击此处处添加段段落文字字内容格式后信信息内容容解析二二执行计划执行统计计行源操作单击此处处添加段段落文字字内容解读与分分析格式式化文件件(示例二二)分析:在本例中中,表sales有918843行而根据据跟踪文文件仅返返回540318行,这表表示WHERE条件过滤滤了大约约41%的行。此此后的GROUPBY进一步减减少结果果到16348行。单击此处处添加段段落文字字内容解读与分分析格式式化文件件用编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 17925-2024气瓶对接焊缝X射线数字成像检测
- Tripetroselinin-1-2-3-Tri-6-Z-octadecenoyl-glycerol-生命科学试剂-MCE-1244
- Diethylene-glycol-d8-2-2-Oxybis-ethan-1-ol-d-sub-8-sub-生命科学试剂-MCE-5883
- 2025年度挂车司机运输合同违约责任与赔偿合同
- 2025年度网络安全行业竞业限制协议生效细则及数据隐私
- 二零二五年度创业公司股权分配及股权激励协议
- 2025年度消防电梯采购与应急救援系统配套合同
- 2025年度水果种植基地农业保险合同
- 2025年度绿色能源股权合作开发合同
- 施工现场施工防传染病制度
- 医院消防安全培训课件
- 质保管理制度
- 《00541语言学概论》自考复习题库(含答案)
- 2025年机关工会个人工作计划
- 2024年全国卷新课标1高考英语试题及答案
- 华为经营管理-华为激励机制(6版)
- 江苏省南京市、盐城市2023-2024学年高三上学期期末调研测试+英语+ 含答案
- 2024护理不良事件分析
- 光伏项目的投资估算设计概算以及财务评价介绍
- 2024新版《药品管理法》培训课件
- 干燥综合征诊断及治疗指南
评论
0/150
提交评论