查询正在执行的sql语句 select a.username, a.sid,b.SQL_TEXT from v$session a, v$sqlarea b where a.sql_address = b.address
同一个环境,有可能同时在执行几个sql语句,这种写法能保证正在执行的就是我调用的那个过程吗
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 根据计算机名查找,应该可以
当前正在执行的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;
用这种方法,找到的还是上面这一句呀,我要找的是调用过程那段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;
那你是怎么追踪sql语句的
select a.username, a.sid,b.SQL_TEXT
from v$session a, v$sqlarea b
where a.sql_address = b.address
同一个环境,有可能同时在执行几个sql语句,这种写法能保证正在执行的就是我调用的那个过程吗
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
根据计算机名查找,应该可以
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;
用这种方法,找到的还是上面这一句呀,我要找的是调用过程那段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;
如果已经知道了那个过程做个10046分析一下