查看存储过程被哪个会话引用
2013-06-26 16:37
204 查看
1、首先确定执行此存储过程的会话,o.kglnaobj即为会话锁住的存储过程名称:
2、查看被堵塞的sql语句,SID为1中查到的SID
select sid,SERIAL#,a.EVENT, a.SQL_ID, a.MACHINE, b.SQL_TEXT, b.SQL_FULLTEXT,b.FIRST_LOAD_TIME,b.LAST_LOAD_TIME,b.LAST_ACTIVE_TIME
from v$session a, v$sql b
where a.SQL_ID = b.SQL_ID
and a.USERNAME is not null
and a.STATUS = 'ACTIVE' and SID = '#SID'
3、杀掉会话,#SID和#SERIAL是从2查到的
alter system kill session '#SID,#SERIAL';
4、如果清理不掉,需要到服务器上面去杀掉进程
查询进程id
清理进程
kill -9 spid(是上一句sql查询出来的)
Select distinct s.sid ,s.SERIAL#, username ,o.kglnaobj from v$session s , sys.x$kglob o , sys.x$kglpn p where p.kglpnhdl=o.kglhdadr and s.saddr=p.kglpnuse ;
2、查看被堵塞的sql语句,SID为1中查到的SID
select sid,SERIAL#,a.EVENT, a.SQL_ID, a.MACHINE, b.SQL_TEXT, b.SQL_FULLTEXT,b.FIRST_LOAD_TIME,b.LAST_LOAD_TIME,b.LAST_ACTIVE_TIME
from v$session a, v$sql b
where a.SQL_ID = b.SQL_ID
and a.USERNAME is not null
and a.STATUS = 'ACTIVE' and SID = '#SID'
3、杀掉会话,#SID和#SERIAL是从2查到的
alter system kill session '#SID,#SERIAL';
4、如果清理不掉,需要到服务器上面去杀掉进程
查询进程id
select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=#SID
清理进程
kill -9 spid(是上一句sql查询出来的)
相关文章推荐
- 查看存储过程被引用
- sql2005 查看数据库或表大小的系统存储过程 sp_spaceused
- 查看系统表存储过程名称SELECT *,OBJECT_NAME(id) FROM syscomments
- Sql Server 查看存储过程在哪些作业中被调用
- ORACLE 如何查看存储过程的定义
- SQL查看存储过程相关信息
- 查看所有表名、视图名、存储过程名、触发器名
- Sql 2005 存储过程参数【多次引用】结合C#影响输出速度问题
- 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
- mysql查看所有存储过程
- 查询引用 表,视图,的所有存储过程
- C# 查找文本内容(不区分大小写,空格)替换成指定的字符(查询分析器中查看存储过程内容时用)
- mysql查看所有存储过程
- mysql查看所有存储过程
- mysql 查看所有存储过程
- Sql : 查看登陆信息,存储过程,查看数据库对象源代码
- 如何只授予用户查看存储过程定义的权限
- sql server 2005查看数据库schema, user 的存储过程
- 查看SQL SERVER 加密存储过程,函数,触发器,视图
- SQL怎么查看和删除存储过程