【转载】如何设置自动跟踪

Q]如何设置自动跟踪   
  [A]用system登录   
  执行$ORACLE_HOME/rdbms/admin/utlplan.sql创建计划表   
  执行$ORACLE_HOME/rdbms/admin/plustrce.sql创建plustrace角色   
  如果想计划表让每个用户都能使用,则   
  SQL>create   public   synonym   plan_table   for   plan_table;   
  SQL>   grant   all   on   plan_table   to   public;   
  如果想让自动跟踪的角色让每个用户都能使用,则   
  SQL>   grant   plustrace   to   public;   
  通过如下语句开启/停止跟踪   
  SET   AUTOTRACE   ON   |OFF   |   ON   EXPLAIN   |   ON   STATISTICS   |   TRACEONLY   |   TRACEONLY   EXPLAIN   
    
  [Q]如果跟踪自己的会话或者是别人的会话   
  [A]跟踪自己的会话很简单   
  Alter   session   set   sql_trace   true|false   
  Or   
  Exec   dbms_session.set_sql_trace(TRUE);   
  如果跟踪别人的会话,需要调用一个包   
  exec   dbms_system.set_sql_trace_in_session(sid,serial#,true|false)   
  跟踪的信息在user_dump_dest   目录下可以找到或通过如下脚本获得文件名称(适用于Win环境,如果是unix需要做一定修改)   
  SELECT   p1.value||'/'||p2.value||'_ora_'||p.spid||'.ora'   filename   
  FROM   
  v$process   p,   
  v$session   s,   
  v$parameter   p1,   
  v$parameter   p2   
  WHERE   p1.name   =   'user_dump_dest'   
  AND   p2.name   =   'db_name'   
  AND   p.addr   =   s.paddr   
  AND   s.audsid   =   USERENV   ('SESSIONID')   
  最后,可以通过Tkprof来解析跟踪文件,如   
  Tkprof   原文件   目标文件   sys=n   
    
  [Q]怎么设置整个数据库系统跟踪   
  [A]其实文档上的alter   system   set   sql_trace=true是不成功的   
  但是可以通过设置事件来完成这个工作,作用相等   
  alter   system   set   events   
  '10046   trace   name   context   forever,level   1';   
  如果关闭跟踪,可以用如下语句   
  alter   system   set   events   
  '10046   trace   name   context   off';   
  其中的level   1与上面的8都是跟踪级别   
  level   1:跟踪SQL语句,等于sql_trace=true   
  level   4:包括变量的详细信息   
  level   8:包括等待事件   
  level   12:包括绑定变量与等待事件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值