oracle-查询锁表sql

查看哪个表被锁

SELECT
	b.owner,
	b.object_name,
	a.session_id,
	a.locked_mode
FROM
	v$locked_object a,
	dba_objects b
WHERE
	b.object_id = a.object_id

查看是哪个session引起的锁表

SELECT
	b.username,
	b.sid,
	b.serial#,
	logon_time
FROM
	v$locked_object a,
	v$session b
WHERE
	a.session_id = b.sid
ORDER BY
	b.logon_time

杀掉进程

alter system kill session 'sid,serial#';

查询当前正在执行的sql

 SELECT
	a.program,
	b.spid,
	a.SID,
	a.SERIAL#,
	c.sql_text,
	c.SQL_ID,
	a.USERNAME,
	c.DISK_READS,
	c.BUFFER_GETS,
	c.EXECUTIONS
FROM
	v$session a,
	v$process b,
	v$sqlarea c
WHERE
	a.paddr = b.addr
	AND a.sql_hash_value = c.hash_value
	AND a.username IS NOT NULL;

查询当前执行存储过程

SELECT
	name,
	locks,
	pins
FROM
	v$db_object_cache
WHERE
	locks > 0
	AND pins > 0
	AND TYPE = 'PROCEDURE';

 

posted @   许孟  阅读(397)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示