没有试过追踪过程或函数,好像我遇到的只有追踪sql语句

解决方案 »

  1.   


    那你是怎么追踪sql语句的
      

  2.   

    查询正在执行的sql语句
    select a.username, a.sid,b.SQL_TEXT
      from v$session a, v$sqlarea b 
    where a.sql_address = b.address 
      

  3.   


    同一个环境,有可能同时在执行几个sql语句,这种写法能保证正在执行的就是我调用的那个过程吗
      

  4.   

    SELECT b.sid oracleID,  
           b.username 登录Oracle用户名,  
           b.serial#,  
           spid 操作系统ID,  
           paddr,  
           sql_text 正在执行的SQL,  
           b.machine 计算机名  
    FROM v$process a, v$session b, v$sqlarea c  
    WHERE a.addr = b.paddr  
       AND b.sql_hash_value = c.hash_value 
    根据计算机名查找,应该可以
      

  5.   

    当前正在执行的sql是:
    select a.username, a.sid,b.SQL_TEXT
      from v$session a, v$sqlarea b 
    where a.sql_address = b.address
    and b.SQL_TEXT like '%t2 my_package.my_table;%'但是我调用过程的语句是:
    declare 
      t2 my_package.my_table;
    begin
      --t2.EXTEND;
      select * into t2(1) from employee where id = 101;
      my_package.pro_test(t2);  
    end;
      

  6.   


    用这种方法,找到的还是上面这一句呀,我要找的是调用过程那段sql语句的session
    调用过程的语句是:
    declare 
      t2 my_package.my_table;
    begin
      --t2.EXTEND;
      select * into t2(1) from employee where id = 101;
      my_package.pro_test(t2);  
    end;
      

  7.   

    定位是那个较慢可以用V$SESSION,v$sqlarea来定位
    如果已经知道了那个过程做个10046分析一下