如何查到堵塞的会话
来源:互联网 发布:台湾国民党知乎 编辑:程序博客网 时间:2024/06/10 18:06
现场有可能出现这样的情况,实施同事修改数据后,忘记提交了(特别是新人最容易出现这种情况),从数据库报告的表象如下,一个极其简单的update产生了大量的等待(取当时的执行计划,是走了索引),其实它是被冤枉的:
模拟当时的情况,通过脚本查出产生堵塞的会话和被堵塞的会话,不过可惜的是,产生堵塞会话的SQL找不到:
session1:
select * from test where object_id = 20 for update;
session2:
select * from test for update;
session3:
SELECT bs.username "Blocking User", bs.username "DB User", bs.SID "SID", bs.serial# "Serial#", bs.sql_address "address", bs.sql_hash_value "Sql hash", bs.program "Blocking App", bs.machine "Blocking Machine", bs.osuser "Blocking OS User", bs.serial# "Serial#", ws.username "Waiting User", ws.SID "WSID", ws.program "Waiting App", ws.machine "Waiting Machine", ws.osuser "Waiting OS User", ws.serial# "WSerial#", wk.TYPE lock_type, hk.lmode mode_held, wk.request mode_requested, TO_CHAR(hk.id1) lock_id1, TO_CHAR(hk.id2) lock_id2, hk.BLOCK blocking_others FROM v$lock hk, v$session bs, v$lock wk, v$session ws WHERE hk.BLOCK = 1 AND hk.lmode != 0 AND hk.lmode != 1 AND wk.request != 0 AND wk.TYPE(+) = hk.TYPE AND wk.id1(+) = hk.id1 AND wk.id2(+) = hk.id2 AND hk.SID = bs.SID(+) AND wk.SID = ws.SID(+) AND (bs.username IS NOT NULL) AND (bs.username <> 'SYSTEM') AND (bs.username <> 'SYS') ORDER BY 1;
- 如何查到堵塞的会话
- 如何查到未提交的事务,堵塞的记录
- 结论: blocking_query 是当前堵塞其他会话正在运行的SQL.而不是原始堵塞SQL
- 如何能够查到LINUX中ROOT的口令?
- 如何关闭widnows2003 IE增强的安全配置堵塞?
- 如何关闭windows 2003“IE”增强的安全配置堵塞
- SAP IDOC的堵塞
- 查看堵塞的SQL
- socket堵塞的解决方法
- 已经开的电脑中 如何查到电脑的开机密码?
- 阿里根据截图查到泄露者,这样的技术是如何做到的?
- 查到的小波讲解
- 数据库查到的数据分类
- 由内存屏障查到的
- String 查到 字符的索引
- CommunityServer 架构下如何快速查到所属文件的类以及用户自定义控件
- 如何在mysql中通过逗号分隔的字段在另一张表中查到多条记录
- ms sql语句如何查到 一个字段中 特定字符的出现次数
- 单处理器调度
- linux+arm路线的学习
- 未安装oracle情况下,plsql或toad远程连接oracle
- 构造函数练习
- struts2标签<s:iterator>中取session域中的值
- 如何查到堵塞的会话
- 八年不计回报投入!千亿智能物流网联盟,参与各方哪来的积极性?
- jQuery实现图片轮播效果,jQuery实现焦点新闻
- Chrome、软件商店、Hybrid App
- 数据挖掘面试题总结
- 分享程序员在囧途网站
- 谷歌将抛弃摩托移动,“中华联”谁会接盘?
- iOS 客户端和服务端实现通信
- ffmpeg框架阅读笔记一:读取数据帧函数 int av_read_frame(AVFormatContext *s, AVPacket *pkt)