怎样获得应用程序所执行的SQL语句 (1)

1523j1jo
2013-10-11 · TA获得超过3588个赞
知道小有建树答主
回答量:1021
采纳率:0%
帮助的人:2367万
展开全部
通常应用的性能瓶颈会在数据库这边,因此数据库的sql语句是我们优化的重点。 要对sql语句进行优化,首先要知道应用程序执行了哪些SQL语句。下面我介绍三种方法来获得应用程序所执行的SQL语句。 方法一:如果你采用的数据库是oracle的话,那么可以利用oracle本身的10046事件跟踪SQL语句。步骤如下: 1、首先获得spid、sid、serial#,machine为你的机器名 SQL> select b.spid,a.sid,a.serial#, a.machine from v$session a,v$process b where a.paddr = b.addr and a.machine='yz'; SPID SID SERIAL# MACHINE 9497 49 3406 yz 2、利用10046事件开始跟踪 SQL>execute sys.dbms_system.set_ev(49, 3406,10046,1,''); PL/SQL procedure successfully completed. 5、SQL trace 工具会收集这个过程中执行的SQL的性能状态数据,记录到一个跟踪文件中.这个跟踪文件提供了许多有用的信息,例如解析次数.执行次数,CPU使用时间等。 6、这时候你可以通过下面的语句获得产生的跟踪文件所在的目录: SQL> select value from v$parameter where name = 'user_dump_dest'; VALUE /opt/oracle/admin/ocn/udump 7、在/opt/oracle/admin/ocn/udump下找到yzoracle_ora_9497.trc。9497是你当前应用的spid。 8、注意yzoracle_ora_9497.trc是不可读的,我们需要执行oracle的tkprof命令,将yzoracle_ora_9497.trc转化为我们可读的文本文件。 tkprof yzoracle_ora_9497.trc yzoracle_ora_9497.sql
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式