您的位置:首页 > 其它

Common Trouble Solution--处理引…

2013-01-28 22:06 330 查看
处理引起等待的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';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: