#查看被锁对象

select b.owner, b.object_name, a.session_id, a.locked_modefrom v$locked_object a, dba_objects bwhere b.object_id = a.OBJECT_ID;

#查看被锁对象和用户信息

SELECT c.owner,c.object_name,c.object_type,b.sid,b.serial#,b.inst_id,b.status,b.osuser,b.machine,'alter system kill session ''' || b.sid || ',' || b.serial# || ',@' ||b.inst_id || ''';'FROM gv$locked_object a, gv$session b, dba_objects cWHERE b.sid = a.session_idAND a.object_id = c.object_idand a.inst_id = b.inst_id;

#查看历史阻塞会话和锁信息

select v.sql_text, v.sql_fulltext, sub.*from v$sql v,(select sample_time,s.sql_id sql_id,session_state,blocking_session,owner || '.' || object_name || ':' ||nvl(subobject_name, '-') obj_name,s.program,s.module,s.machinefrom dba_hist_active_sess_history s, dba_objects owhere sample_time betweento_date('27/02/2019 07:30:02', 'DD/MM/YYYY HH24:MI:SS') andto_date('28/02/2019 15:10:02', 'DD/MM/YYYY HH24:MI:SS')and event = 'enq: TX - row lock contention'and o.data_object_id = s.current_obj#order by 1 desc) subwhere sub.sql_id = v.sql_id;

#找到暂时阻塞的会话和锁定

select s1.username || '@' || s1.machine || ' ( THIS SID=' || s1.sid ||' )  is blocking ' || s2.username || '@' || s2.machine || ' ( SID=' ||s2.sid || ' ) ' AS blocking_statusfrom gv$lock l1, gv$session s1, gv$lock l2, gv$session s2where s1.sid = l1.sidand s2.sid = l2.sidand l1.BLOCK = 1and l2.request > 0and l1.id1 = l2.id1and l2.id2 = l2.id2;

#kill掉大于300秒的会话

SELECT 'kill -9 ' || p.spid,s.username,'alter system kill session ''' || SID || ',' || s.serial# || ''';'FROM v$session s, v$process pWHERE s.paddr = p.addr(+)AND s.SID IN (select sidfrom v$sql_monitorwhere status = 'EXECUTING'and elapsed_time / 1000000 > 300and username in ('MEHMET', 'SALIH'));SELECT 'alter system kill session ''' || SID || ',' || s.serial# || ',@' ||inst_id || ''';',sid,username,serial#,process,NVL(sql_id, 0),sql_address,blocking_session,wait_class,event,p1,p2,p3,seconds_in_waitFROM gv$session sWHERE blocking_session_status = 'VALID'OR sid IN (SELECT blocking_sessionFROM gv$sessionWHERE blocking_session_status = 'VALID');

#Oracle–找到被锁住的对象(非死锁)

SELECT a.sid, a.serial#, a.username, c.os_user_name, a.program, a.logon_time, a.machine, a.terminal, b.object_id, substr(b.object_name,1,40) object_name, DECODE(c.locked_mode,1, 'No Lock',2, 'Row Share',3, 'Row Exclusive',4, 'Shared Table',5, 'Shared Row Exclusive',6, 'Exclusive') locked_mode
from v$session a, dba_objects b, v$locked_object c
where a.sid = c.session_id
and b.object_id = c.object_id;

#当前会话中查看引起行锁竞争的语句

select sw.event,sw.sid,sw.p1,sw.p2,sw.p3,s.ROW_WAIT_OBJ#,s.ROW_WAIT_FILE#,s.ROW_WAIT_BLOCK#,s.ROW_WAIT_ROW#,o.OWNER,o.OBJECT_NAME,o.OBJECT_ID,o.DATA_OBJECT_ID,o.OBJECT_TYPE,st.sql_id,st.sql_textfrom v$session_wait sw, v$session s, dba_objects o, v$sql stwhere sw.sid = s.sidand o.object_id = s.ROW_WAIT_OBJ#and (st.sql_id = s.sql_id or st.sql_id = s.prev_sql_id)and sw.event = 'enq: TX - row lock contention';

#从历史会话中查看引起行锁竞争的语句

select ash.sample_time,ash.instance_number,ash.user_id,u.username,ash.session_id,ash.session_serial#,ash.current_obj#,o.owner,o.object_name,o.object_type,ash.sql_id,ash.sql_opname,ash.wait_class,ash.program,ash.module,ash.blocking_session_status,ash.blocking_session,ash.blocking_session_serial#,ash.blocking_inst_id,st.inst_id,st.sql_textfrom dba_hist_active_sess_history ash,dba_users                    u,dba_objects                  o,gv_$sql                      stwhere to_char(ash.sample_time, 'YYYY-MM-DD hh24:mi:ss') between  '2022-03-22 13:30:00' and '2022-03-22 15:30:00'and ash.time_waited > 0and ash.session_state = 'WAITING'and ash.user_id = u.user_idand ash.current_obj# = o.object_idand st.sql_id = ash.sql_idand ash.event = 'enq: TX - row lock contention';

#单实例的会话阻塞

SELECT s1.username || '@' || s1.machine || ' ( SID=' || s1.sid ||' )  is blocking ' || s2.username || '@' || s2.machine || ' ( SID=' ||s2.sid || ' ) ' AS blocking_statusFROM v$lock l1, v$session s1, v$lock l2, v$session s2WHERE s1.sid = l1.sidAND s2.sid = l2.sidAND l1.BLOCK = 1AND l2.request > 0AND l1.id1 = l2.id1AND l2.id2 = l2.id2;

#单实例的会话阻塞,详细信息

SELECT vs.username,vs.osuser,vh.sid locking_sid,vs.status status,vs.module module,vs.program program_holding,jrh.job_name,vsw.username,vsw.osuser,vw.sid waiter_sid,vsw.program program_waiting,jrw.job_name,'alter system kill session ' || '''' || vh.sid || ',' || vs.serial# ||''';' "Kill_Command"FROM v$lock                     vh,v$lock                     vw,v$session                  vs,v$session                  vsw,dba_scheduler_running_jobs jrh,dba_scheduler_running_jobs jrwWHERE (vh.id1, vh.id2) IN (SELECT id1, id2FROM v$lockWHERE request = 0INTERSECTSELECT id1, id2FROM v$lockWHERE lmode = 0)AND vh.id1 = vw.id1AND vh.id2 = vw.id2AND vh.request = 0AND vw.lmode = 0AND vh.sid = vs.sidAND vw.sid = vsw.sidAND vh.sid = jrh.session_id(+)AND vw.sid = jrw.session_id(+);

#RAC环境的会话阻塞

SELECT DISTINCT S1.USERNAME || '@' || S1.MACHINE || ' ( INST=' ||S1.INST_ID || ' SID=' || S1.SID || ' ) IS BLOCKING ' ||S2.USERNAME || '@' || S2.MACHINE || ' ( INST=' ||S1.INST_ID || ' SID=' || S2.SID || ' ) ' AS BLOCKING_STATUSFROM GV$LOCK L1, GV$SESSION S1, GV$LOCK L2, GV$SESSION S2WHERE S1.SID = L1.SIDAND S2.SID = L2.SIDAND S1.INST_ID = L1.INST_IDAND S2.INST_ID = L2.INST_IDAND L1.BLOCK > 0AND L2.REQUEST > 0AND L1.ID1 = L2.ID1AND L1.ID2 = L2.ID2;

#RAC环境的会话阻塞和对象信息

SELECT DISTINCT S1.USERNAME || '@' || S1.MACHINE || ' ( INST=' ||S1.INST_ID || ' SID=' || S1.SID || ' ) IS BLOCKING ' ||S2.USERNAME || '@' || S2.MACHINE || ' ( INST=' ||S1.INST_ID || ' SID=' || S2.SID || ' ) OBJ_ID:' || L1.ID1 ||' OBJ_NAME:' || O.OBJECT_NAME AS BLOCKING_STATUSFROM GV$LOCK L1, GV$SESSION S1, GV$LOCK L2, GV$SESSION S2, DBA_OBJECTS OWHERE S1.SID = L1.SIDAND S2.SID = L2.SIDAND S1.INST_ID = L1.INST_IDAND S2.INST_ID = L2.INST_IDAND L1.ID1 = OBJECT_IDAND L1.ID1 = O.OBJECT_IDAND L1.BLOCK > 0AND L2.REQUEST > 0AND L1.ID1 = L2.ID1AND L1.ID2 = L2.ID2;

#RAC环境的会话阻塞,针对某个具体的对象

SELECT DISTINCT S1.USERNAME || '@' || S1.MACHINE || ' ( INST=' ||S1.INST_ID || ' SID=' || S1.SID || ' ) IS BLOCKING ' ||S2.USERNAME || '@' || S2.MACHINE || ' ( INST=' ||S1.INST_ID || ' SID=' || S2.SID || ' ) OBJ_ID:' || L1.ID1 ||' OBJ_NAME:' || O.OBJECT_NAME AS BLOCKING_STATUSFROM GV$LOCK L1, GV$SESSION S1, GV$LOCK L2, GV$SESSION S2, DBA_OBJECTS OWHERE S1.SID = L1.SIDAND S2.SID = L2.SIDAND S1.INST_ID = L1.INST_IDAND S2.INST_ID = L2.INST_IDAND L1.ID1 = OBJECT_IDAND L1.ID1 = O.OBJECT_IDAND L1.BLOCK > 0AND L2.REQUEST > 0AND L1.ID1 = L2.ID1AND L1.ID2 = L2.ID2AND object_id in (SELECT OBJECT_IDFROM DBA_OBJECTSWHERE OWNER = 'ABC'AND OBJECT_NAME = 'XYZ');

Oracle 锁相关查询脚本相关推荐

  1. oracle decode_错过血亏!一文搞懂Oracle锁相关视图及相关操作

    本文主要研究锁的相关视图,以及锁的相关操作,通过视图查锁的问题. 一.v$transaction视图 第一个视图是v$transaction,就是Oracle数据库所有活动的事务数,所有活动的事务每一 ...

  2. 错过血亏!一文搞懂Oracle锁相关视图及相关操作

    本文主要研究锁的相关视图,以及锁的相关操作,通过视图查锁的问题. 一.v$transaction视图 第一个视图是v$transaction,就是Oracle数据库所有活动的事务数,所有活动的事务每一 ...

  3. oracle的dbtime,Oracle查询dbtime,以及各个指标的查询脚本

    Oracle查询dbtime,以及各个指标的查询脚本 发布时间:2020-03-04 07:22:03 来源:51CTO 阅读:758 作者:李石岩 set linesize 1000 set pag ...

  4. oracle冷备修改数据文件位置,Oracle冷备迁移脚本(文件系统)

    Oracle冷备迁移脚本(文件系统) 两个脚本: 网络拷贝到目标服务器的脚本cpdb16.sh 1. 配置文件生成脚本 #!/bin/bash #Usage: create db.config fil ...

  5. Oracle 性能相关常用脚本(SQL)

    在缺乏的可视化工具来监控数据库性能的情形下,常用的脚本就派上用场了,下面提供几个关于Oracle性能相关的脚本供大家参考.以下脚本均在Oracle 10g测试通过,Oracle 11g可能要做相应调整 ...

  6. oracle当天八点,oracle实现动态查询前一天早八点到当天早八点的数据功能示例

    oracle实现动态查询前一天早八点到当天早八点的数据功能示例 本文实例讲述了oracle实现动态查询前一天早八点到当天早八点的数据.分享给大家供大家参考,具体如下: 需要查询前一天早八点到当天早八点 ...

  7. oracle备份数据脚本,oracle数据库自动备份脚本

    ::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [ ...

  8. python执行sql查询脚本并填写到excel,执行SQL查询脚本

    static void Main(string[] args) { Console.WriteLine("输入用户编号:"); string cusernum = Console. ...

  9. oracle查询父子节点,oracle 父子节点 查询

    oracle 父子节点 查询 1)从父节点到所有子节点 SELECT  t.ID id, RPAD( '- ', 8*(LEVEL-1), ' -' ) || l.MEANING name, t.ME ...

最新文章

  1. PHP程序员如何突破技术瓶颈
  2. when is SAP UI5 url hash changed in browser
  3. 学java好还是web前端好_到底是学习Java好,还是Web前端好?
  4. zookeeper学习入门
  5. java搭建聊天服务器_使用 ServerSocket 建立聊天服务器-2
  6. 企业管理软件随想-透视-包容,无形思想-有形方便
  7. 【Nginx那些事】nginx 安装及常用指令
  8. JVM 晋升到老年代的动态年龄判断
  9. mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
  10. struts2中action手动获取參数
  11. windows自带黑体_win10黑体,windows10里的黑体
  12. 利用Python做假设检验、参数估计、方差分析、线性回归
  13. 用c语言解参数积分,C语言求定积分的通用函数
  14. 51 nod 2070 最小罚款
  15. 微信系多商户商城完整部署步骤
  16. Quartz.NET总结(五)基于Quartz.net 的开源任务管理平台
  17. Markdown 更改字体颜色
  18. JavaScript 中字符串截取 (+实现)
  19. HDS CTO谈优化存储投资 渡过经济寒冬
  20. 第4节 操作器和Trackball

热门文章

  1. python——tensorflow——ValueError:Shape(None,1)and (None,7) are incompatible
  2. 易订货专属App文档
  3. 2018.电子系统综合设计报告
  4. mysql xtrabackup-v2_xtrabackup 备份问题
  5. 面向鲲鹏和昇腾的创新架构
  6. PS2游戏机硬盘启动制作教程
  7. android+9切图工具下载,图片分割工具(9Cut)
  8. bzoj3083 遥远的国度 bzoj3626 LCA (树链剖分)
  9. 黑帽SEO主要作弊方法
  10. 高清晰度彩色电影胶卷