Oracle Trace文件生成及查看

本文详细介绍了如何生成Oracle SQL Trace文件,包括如何配置、生成与查看Trace文件,以及如何通过Tkprof工具将Trace文件转换为更易于理解的形式,以便分析SQL性能瓶颈并进行优化。

1.Trace file简介:

Trace file(追踪文件)是以trc为后续的文本文件,它记录了各种sql操作及所消耗的时间等,根据trace文件我们就可以了解哪些sql导致了系统的性能瓶颈,进而采取恰当的方式调优.

2.怎么生成trace file:

1. 首先用sqlplus登陆Oracle.

show parameter sql_trace

Name          Type        Value

-------------------------------------------

sql_trace     boolean      false

如果value是false表示系统当前不会产生trace文件.采取如下操作让系统产生trace文件:

alter session set sql_trace=true;

或者:

alter system set sql_trace=true;

2.执行一些sql语句后.停止产生trace文件.alter session(或system)  set sql_trace=false.

3.trace文件所在的默认路径.SELECT VALUE  FROM V$PARAMETER WHERE NAME = 'user_dump_dest'

我本机的查找结果是:C:\ORACLE\PRODUCT\10.2.0\ADMIN\ORA102\UDUMP.

3.怎么更改trace文件的保存目录:

如果是oracle 11g 以下的版本则:alter system set user_dump_dest = 'd:\oracle\trace';(注意:trace文件就直接生成在trace目录下)

如果是oracle 11g.则alter system set user_diagnostic_dest = 'd:\oracle\trace';(注意:trace文件不会直接生成在trace目录下.trace目录下会生成其他很多目录.

trace文件的具体目录是:d:\oracle\trace\diag\rdbms\orli11r2\orli11r2\trace.其中的orli11r2是SID)

4.怎么查看trace文件:

如果直接看trace文件是很难看懂的.就是下面的样子(我只是随便复制一段):

1319423003070764

=====================

PARSING IN CURSOR #2 len=90 dep=1 uid=0 oct=3 lid=0 tim=1319423003070864 hv=673844243 ad='7ecb9458' sqlid='9g485acn2n30m'

select col#,intcol#,reftyp,stabid,expctoid from refcon$ where obj#=:1 order by intcol# asc

END OF STMTPARSE #2:c=0,e=56,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,plh=2544153582,tim=1319423003070864

BINDS #2: Bind#0oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00

  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0 kxs

我们可以用oracle自带的工具TKPROF转化后再查看trace文件.转化后是下面的样子:

SQL ID : 0zzk39z279q41

SELECT version

FROM

product_component_version WHERE product LIKE 'Oracle%'

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        1      0.00       0.00          0          0          0           1

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        3      0.00       0.00          0          0          0           1

Misses in library cache during parse: 1

Optimizer mode: ALL_ROWS

Parsing user id: 69

Rows     Row Source Operation

-------  ---------------------------------------------------

      1  VIEW  PRODUCT_COMPONENT_VERSION (cr=0 pr=0 pw=0 time=0 us cost=2 size=168 card=2)

      1   SORT UNIQUE (cr=0 pr=0 pw=0 time=0 us cost=2 size=110 card=2)

      1    UNION-ALL  (cr=0 pr=0 pw=0 time=0 us)

      0     FIXED TABLE FULL X$VERSION (cr=0 pr=0 pw=0 time=0 us cost=0 size=55 card=1)

      1     FIXED TABLE FULL X$VERSION (cr=0 pr=0 pw=0 time=0 us cost=0 size=55 card=1)

********************************************************************************

引自:http://blog.youkuaiyun.com/weiwenhp/article/details/6932835

org.apache.jasper.JasperException: 无法为JSP编译类: 在生成的java文件中的第:[15]行发生错误:[C:\Users\19653\AppData\Local\JetBrains\IntelliJIdea2024.3\tomcat\Unnamed_meeting\work\Catalina\localhost\ROOT\org\apache\jsp\html\article_jsp.java] The type jdk.jfr.internal.tool.Command.title is not visible Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:72) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:192) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:542) org.apache.jasper.compiler.Compiler.compile(Compiler.java:371) org.apache.jasper.compiler.Compiler.compile(Compiler.java:343) org.apache.jasper.compiler.Compiler.compile(Compiler.java:329) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:376) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:324) javax.servlet.http.HttpServlet.service(HttpServlet.java:623) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51此为错误,以下为jsp代码<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.sql.*" %> <%@ page import="static jdk.jfr.internal.tool.Command.title" %> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>文章</title> </head> <body> <jsp:include page="/incloud/header.jsp" /> <div class="d-flex align-items-stretch"> <!-- Sidebar Navigation--> <jsp:include page="/incloud/sidebar.jsp" /> <% boolean browseCount; %> <!-- Sidebar Navigation end--> <div class="page-content"> <div class="page-header"> <div class="container-fluid"> <h2 class="h5 no-margin-bottom">发布文章</h2> </div> </div> <li class="no-padding-bottom"> <div class="list-group myList"> <!--搜索文章的条件--> <div class="myTitle"> <form class="form-inline" action="article.jsp" method="get"> <div class="form-group"> <label for="inlineFormInput" class="sr-only">Name</label> <input id="inlineFormInput" name="title" type="text" placeholder="按标题名字查找" class="mr-sm-3 form-control"> </div> <div class="form-group"> <input type="submit" value="查询" class="btn btn-primary"> </div> </form> <input id = "addArt" type="submit" value="发布文章" class="btn btn-primary"> </div> <ul> <li class="list-group-item" action="/article/findAll" method="get"> <table> <thead> <tr> <span>收藏数:100</span> <span> </span> <span> </span> <span> </span> <span>浏览数:<th> </th></span> <p class="h6">作者:<th> </th></p> <p class="h6">时间:<th></th></p> <p style="white-space:nowrap;overflow:hidden;text-overflow: ellipsis"><th></th></p> </tr> </thead> <tbody> <tr> <th scope="row">${article.user_id}</th> <td>${article.browse_count}</td> <td>${article.publish_realname}</td> <td>${publish_date}</td> </tr> </tbody> </table> </li> </ul> <nav class="text-center" aria-label="Page navigation"> <ul class="pagination"> <li> <a href="javascript:" onclick="pre()" aria-label="Previous"> <span aria-hidden="true">«</span> </a> </li> <c:forEach begin="1" end="${pageData.totalPage}" varStatus="i"> <li><a href="/article/findAll?currPage=${i.count}&Title=${Title}">${i.count}</a></li> </c:forEach> <li> <a href="javascript:" onclick="next()" aria-label="Next"> <span aria-hidden="true">»</span> </a> </li> </ul> </nav> </div> </li> </section> <jsp:include page="/incloud/footer.jsp" /> </div> </div> </body> </html> <script type="text/javascript"> function pre() { if (${pageData.currPage-1<=0}) { layer.msg('已经到顶啦!'); return; } window.location.href = "/user/findAll?currPage=${pageData.currPage - 1}&realName=${realName}" } //添加文章跳转链接 $("#addArt").click(function () { window.location.href = '/html/article_add.jsp' }); </script>
最新发布
06-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值