查看锁表进程

SELECT DISTINCT decode(s.inst_id, 1, 'DB1', 2, 'DB2') 数据库服务器,
decode(s.BLOCKING_SESSION,
'',
S.USERNAME,
'--' || s.USERNAME) 登陆用户名,
O.OWNER || '.' || O.OBJECT_NAME 锁的对象,
S.SID,
decode(S.BLOCKING_SESSION,
'',
'根锁为此会话',
'根锁会话:' || S.BLOCKING_SESSION) 阻塞SID,
S.BLOCKING_SESSION_STATUS STATUS,
(CASE
WHEN SQL_TEXT IS NULL THEN
'(SID:' || S.SID || ')会话 SQL已跑完'
ELSE
'(SID:' || S.SID || ')会话 正执行SQL:' || SQL_.SQL_TEXT
END) SQL_TEXT,
s.CLIENT_INFO,
LO.REQUEST,
S.STATE,
S.EVENT,
S.MACHINE,
S.LOGON_TIME,
S.INST_ID,
S.BLOCKING_SESSION, 'ALTER SYSTEM KILL SESSION ''' || S.SID || ',' ||
S.SERIAL# || ''';',
'' KILL
FROM GV$SESSION S
LEFT JOIN GV$SQL SQL_
ON SQL_.SQL_ID = S.SQL_ID
AND SQL_.INST_ID = S.INST_ID
JOIN GV$LOCKED_OBJECT L
ON L.SESSION_ID = S.SID
AND L.INST_ID = S.INST_ID
JOIN ALL_OBJECTS O
ON L.OBJECT_ID = O.OBJECT_ID
JOIN GV$LOCK LO
ON (LO.BLOCK != 0 OR LO.REQUEST != 0)
WHERE LO.SID = L.SESSION_ID
AND LO.SID = S.SID
AND LO.INST_ID = L.INST_ID
AND LO.INST_ID = S.INST_ID
ORDER BY s.inst_id, S.BLOCKING_SESSION, s.SID DESC;

/*****************************************

*Oracle数据库操作中,
*锁表查询以及解锁和kill操作
*****************************************/
--查看锁表记录条数
SELECT COUNT(*) FROM V$LOCKED_OBJECT;
--查看锁表记录
SELECT * FROM V$LOCKED_OBJECT;
--查看被锁表
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#' IMMEDIATE;
--如果数据库级别杀不到进程
(Windows-->) orakill <sid> <spid>
(Linux-->) kill -9 <spid>
select a.sid, b.spid, b.pid
  from v$session a, v$process b
 where a.PADDR = b.ADDR
   and a.sid = 192;
 
##查询锁表的sql(需要输入查询sid)
select username, sql_text, machine, osuser
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;
##查询正在执行的sql
SELECT s.sid,
s.serial#,
s.username,
spid,
v$sql.sql_id,
machine,
s.terminal,
s.program,
sql_text
FROM v$process, v$session s, v$sql
WHERE addr = paddr
and s.sql_id = v$sql.sql_id
AND sql_hash_value = hash_value

Q:查看锁表进程,及杀死所有锁表进程sql的更多相关文章

  1. Linux如何查看进程、杀死进程、启动进程等常用命令

    Linux如何查看进程.杀死进程.启动进程等常用命令 关键字: linux 查进程.杀进程.起进程1.查进程    ps命令查找与进程相关的PID号:    ps a 显示现行终端机下的所有程序,包括 ...

  2. linux 查看进程 和 杀死进程

    ps ax 显示当前系统进程的列表 PID TTY      STAT   TIME COMMAND ps aux 显示当前系统进程详细列表以及进程用户 USER       PID %CPU %ME ...

  3. linux 查看某进程 并杀死进程 ps grep kill

    Linux 中使用top 或 ps 查看进程使用kill杀死进程 1.使用top查看进程: $top 进行执行如上命令即可查看top!但是难点在如何以进程的cpu占用量进行排序呢? cpu占用量排序执 ...

  4. Window通过cmd查看端口占用、相应进程、杀死进程

       在windows下启动程序时候经常出现端口占用, 修改本程序端口是一种解决思路,但是更多时候希望直接杀掉占用端口的程序: 一. 查看所有进程占用的端口 在开始-运行-cmd,输入: netsta ...

  5. Window 通过cmd查看端口占用、相应进程、杀死进程等的命令【转】

    一. 查看所有进程占用的端口  在开始-运行-cmd,输入:netstat –ano可以查看所有进程 二.查看占用指定端口的程序  当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知 ...

  6. centos(linux) 下如何查看端口占用情况及杀死进程

    使用这个命令:netstat -nap [root@Jaosn sphinx]# netstat -nap Active Internet connections (servers and estab ...

  7. CentOS查看进程、杀死进程、启动进程等常用命令

    关键字: linux 查进程.杀进程.起进程 1.查进程     ps命令查找与进程相关的PID号:     ps a 显示现行终端机下的所有程序,包括其他用户的程序.     ps -A 显示所有程 ...

  8. 【转】Window 通过cmd查看端口占用、相应进程、杀死进程等的命令

    转自:http://blog.csdn.net/jiangwei0910410003/article/details/18967441 一. 查看所有进程占用的端口  在开始-运行-cmd,输入:ne ...

  9. linux -- 进程的查看、进程id的获取、进程的杀死

    进程查看 ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 ps ax|less : 如果输出过长,可能添加管道命令 less查看具体进程, 如:ps a ...

  10. Linux如何查看进程、杀死进程、查看端口等常用命令

    查看进程号 1.ps 命令用于查看当前正在运行的进程.grep 是搜索 例如: ps -ef | grep java表示查看所有进程里 CMD 是 java 的进程信息2.ps -aux | grep ...

随机推荐

  1. memcached简介及java使用方法

    一. 概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二. 适用场合 1. 分布式应用 ...

  2. golang之泛型

    Go 1.18版本增加了对泛型的支持,泛型也是自 Go 语言开源以来所做的最大改变. 泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型.ーー换句话 ...

  3. elementUI 表格之合并同类项(包括行和列)

    mergeSpan(tableData, arr) { //["areName","indexCode"] let spanArr = new Array(ta ...

  4. Django之项目部署

    1.线上部署一般会使用https的方式进行部署,本身django框架是不支持的,所以需要... 1)安装扩展 pip install django-extensions django-werkzeug ...

  5. LonEle 操作的 SQL Server 数据库(msde2000)由 20180418 版更新至 20190328 版(非官方)

    Shanghai Mitsubishi Elevator Co., Ltd(上海三菱电梯有限公司) 的 Comprehensive Elevator Monitoring System (电梯综合监控 ...

  6. 怎么实时更新echarts图标数据?

    function getData(){ var request . nem XPHLHttpRequest () ; request . open("get",'http://lo ...

  7. OS之《机械硬盘》

    数据的组织 一个磁盘设备 ---->多个物理盘片 一个物理盘片---->正反两面存储面 一个存储面---->多个磁道(每个磁道上存储容量时一样的,可存储相同数目的二进制位),所以,内 ...

  8. VS C++ 出现debug assertion failed弹框,怎么定位代码

    当VS C++ 出现debug assertion failed弹框时,想定位代码,但是按弹框出现的3个按钮都不能定位代码,这个时候,你需要打开VS界面,暂停调试,然后打开函数调用栈,找到最后执行的函 ...

  9. vs2017 opencv 编译错误 error C2665: “exp”: 3 个重载中没有一个可以转换所有参数类型

    编译错误 - error C2665: "exp": 3 个重载中没有一个可以转换所有参数类型,在GenericPacketMath.h文件, 是因为使用了Eigen3.4库,只要 ...

  10. Python 潮流周刊#81:在个人电脑上运行 GPT-4 级别的大模型(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...