您当前的位置: 首页 > 数据库教程 > Oracle教程 > Oracle如何用内置脚本查堵塞

Oracle如何用内置脚本查堵塞

作者:不详 来源:网络 发布时间: 2014-08-23 20:48 点击:
在诊断关于锁的问题的时候,要查到持有者,被堵塞者。往往是很麻烦,如果你没有积累的脚本,靠手工查要查很多表,如v$lock,v$process p, v$session s, v$latchholder等。现在有个简单的方法,使用Oracle的内置脚本生成两个视图dba_waiters和dba_blockers来查堵塞。执行

Oracle如何用内置脚本查堵塞

  在诊断关于锁的问题的时候,要查到持有者,被堵塞者。往往是很麻烦,如果你没有积累的脚本,靠手工查要查很多表,如v$lock,v$process p, v$session s, v$latchholder等。现在有个简单的方法,使用Oracle的内置脚本生成两个视图dba_waiters和dba_blockers来查堵塞。执行内置脚本要在SYS中执行,如下:

  C:Documents and Settingsguogang>sqlplus / as sysdba;

  SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 24 08:26:42 2014

  Copyright (c) 1982, 2005, Oracle. All rights reserved.

  连接到:

  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

  With the Partitioning, OLAP and Data Mining options

  SQL> @?/rdbms/admin/catblock.sql

  视图已创建。

  同义词已创建。

  .........................

  实验:

  模拟DML锁

  session1:

  select * from test for update;

  session2:

  select * from test for update;

  session3:

  SQL> select * from dba_waiters;

  WAITING_SESSION HOLDING_SESSION LOCK_TYPE MODE_HELD MODE_REQUESTED LOCK_ID1 LOCK_ID2

  --------------- --------------- ------------------------- ---------------------- ----------------------- -------------------- --------------- ---------

  142 150 Transaction Exclusive Exclusive 131099 2550

  SQL> select * from dba_blockers;

  HOLDING_SESSION

  ---------------

  150

  可以清晰的看到锁的持有者是session 150,等待者是142 。

  模拟DDL锁

  session1:

  select * from obj$ for update

  session2:

  create index ind_t_id on test(object_id);

  session3:

  SQL> select * from dba_waiters;

  WAITING_SESSION HOLDING_SESSION LOCK_TYPE MODE_HELD MODE_REQUESTED LOCK_ID1 LOCK_ID2

  --------------- --------------- -------------------------- ---------------------------------------- ---------------------------------------- ---------- ----------

  150 145 Transaction Exclusive Exclusive 1310729 1391

  SQL> select * from dba_blockers;

  HOLDING_SESSION

  ---------------

  145

  可以清晰的看到锁的持有者是session 145,等待者是150 。
分享到:
本文"Oracle如何用内置脚本查堵塞"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4