查看锁表进程

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. 详解 Eclipse 中的快速 Java 编码(代码模板)

    http://hi.baidu.com/twlk28/blog/item/f3ca4d905f1c6696a877a462.html 简介: Eclipse 提供了通过定义和使用代码模板来提高工作效率 ...

  2. Python源码分析2 - 一个简单的Python程序的执行

    本文主要通过跟踪一个非常简单的Python程序的执行,简单讨论Python实现的基本框架和结构. 要执行Python程序如下,功能非常简单:从1加到10再打印出来 # test program sum ...

  3. Python:pygame游戏编程之旅七(pygame基础知识讲解1)

    与Python自带的random.math.time等模块一样,Pygame框架也带有许多模块来提供绘图.播放声音.处理鼠标输入等功能. 本章将讲述Pygame提供的基本模块及功能,并假设读者已经具有 ...

  4. .NET9 - Swagger平替Scalar详解(四)

    书接上回,上一章介绍了Swagger代替品Scalar,在使用中遇到不少问题,今天单独分享一下之前Swagger中常用的功能如何在Scalar中使用. 下面我们将围绕文档版本说明.接口分类.接口描述. ...

  5. Mybatis【19】-- Mybatis自关联多对多查询

    注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-15-oneself-many2many,需要自取 ...

  6. xtrabackup脚本

    xtrabackup是MySQL的一种物理备份工具,相对于mysqldump,备份和还原速度更快 , 我写了一份可以进行备份 + 还原的脚本 #!bin/bash all_bak_path=" ...

  7. Linux中touch、mkdir与vi的区别

    mkdir: 建立一个空目录 touch: 建立一个空文档,但是不进入编辑模式 vi:        建立一个空文档,进入编辑模式

  8. 打包jar 程序,同时将依赖报一起打包

    1.概述 有些时候,我们打包一个java 程序,我需要将所有的依赖也一起打包,这样执行起来方便. 2.我们可以使用maven 插件实现 <build> <plugins> &l ...

  9. 谈谈Python中的接口与抽象基类

    接触Python比较早的朋友可能都有这样的体会,Python语言虽然也支持面向对象的编程方式, 但是,不像那些纯面向对象的语言(比如Java和.NET)那样严格和规范. 随着项目的规模逐步扩大之后,想 ...

  10. R数据分析:净重新分类(NRI)和综合判别改善(IDI)指数的理解

    对于分类预测模型的表现评估我们最常见的指标就是ROC曲线,报告AUC.比如有两个模型,我们去比较下两个模型AUC的大小,进而得出两个模型表现的优劣.这个是我们常规的做法,如果我们的研究关注点放在&qu ...