处理引起等待的sql 语句
1情景描述:在数据库中更新一条数据时,等待很长时间度不会执行结束。
for example:sql>update emp set ename='zhangsan' where empno='111';
2.在数据库中查询哪些会话等待了<1>的sql语句:
sql>select sid,username,blocking_session,
blocking_session_status,blocking_instance
from v$session where username='xxxx';
3.进一步查询是哪个sid的会话导致了<1>会话不能执行:
sql>select sid,username,blocking_session,event,wait_time
from v$session where username='xxxx';
4.根据sid查询该会话的具体sql语句
sql>select sql_text
from v$session a ,v$sqltext_with_newlines b
where
DECODE (a.sql_hash_value,0 ,prev_hash_value,sql_hash_value)= b.hash_value
and a.sid=&sid order by piece;
5.查看数据库中等待的sid,serial#的会话:
sql>select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
6.干掉最早没有提交的sql语句;
sql>alter system kill session '513,4';
1情景描述:在数据库中更新一条数据时,等待很长时间度不会执行结束。
for example:sql>update emp set ename='zhangsan' where empno='111';
2.在数据库中查询哪些会话等待了<1>的sql语句:
sql>select sid,username,blocking_session,
3.进一步查询是哪个sid的会话导致了<1>会话不能执行:
sql>select sid,username,blocking_session,event,wait_time
4.根据sid查询该会话的具体sql语句
sql>select sql_text
5.查看数据库中等待的sid,serial#的会话:
sql>select t2.username,t2.sid,t2.serial#,t2.logon_time
6.干掉最早没有提交的sql语句;