每篇一笑:老鼠去方便,见熊也在,吓得不吭声,熊看了眼老鼠说:你掉不掉毛?老鼠哆嗦不语,熊又问:掉不掉毛?老鼠说:不掉!熊抓住老鼠擦擦屁股走了。

锁机制用于管理对共享资源的并发访问。注意,我说的是“共享资源”而不是“数据库行”。Oracle会在行级别对表数据锁定,这固然不错,不过Oracle也会在其他多个级别上使用锁,从而对多种不同的资源提供并发访问。
如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会出现死锁。例如,如果数据库中有两个表A和B,每个表中都只有一行,就可以很容易地展示什么是死锁。要做的只是打开两个会话。在会话A中更新表A,并在会话B中更新表B。现在,如果想在会话B中更新表A,就会阻塞。会话A已经锁定了这一行。这不是死锁,只是阻塞而已。我还没有遇到过死锁,因为会话A还有机会提交或回滚,这样会话B就能继续了。
1.查看当前系统中锁表情况的SQL如下:

select * from v$locked_object

2.可以通过查询v$locked_object拿到sid和objectid,然后用sid和v$session链表查询是哪里锁的表,用v$session中的objectid字段和dba_objects的id字段关联,查询详细的锁表情况的SQL如下:

select sess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_modefrom v$locked_object lo, dba_objects ao, v$session sess, v$process p
where ao.object_id = lo.object_idand lo.session_id = sess.sid

3.查询是什么引起了锁表的原因的SQL如下:

select l.session_id sid,s.serial#,l.locked_mode,l.oracle_username,s.user#,l.os_user_name,s.machine,s.terminal,a.sql_text,a.actionfrom v$sqlarea a, v$session s, v$locked_object l
where l.session_id = s.sidand s.prev_sql_addr = a.address
order by sid, s.serial#

4.解锁的SQL如下:

alter system kill session 'sid,serial#'

傅老师课堂:Oracle高级应用之解锁表相关推荐

  1. 傅老师课堂:Oracle高级应用之合并MERGE

    为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的. MERGE是什么?这么厉害的东西你都不知道,你这学生是怎么学习的?老师不给你讲你就不会自学了吗?哎!可怜天下老师心啊, ...

  2. 傅老师课堂:Oracle高级查询之GROUP BY

    为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的. 现在客户的需求是统计部门中每种工作的工资总额,最后还需要统计所有人的工资总数,相信这样的需求对大家来说还是比较简单的, ...

  3. 傅老师课堂:Oracle高级查询之CONNECT BY

    为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的. Oracle中的select语句可以用start with ... connect by prior ...子句实现递 ...

  4. 傅老师课堂:Oracle高级查询之OVER (PARTITION BY ..)

    [size=large][size=large][size=large]开篇一笑:某日一妹子对男友说:在一起这么久了你都没有夸过我漂亮,今天我要你夸夸我,男子想了一会看着女友鸡冻的说道:我硬了. 为了 ...

  5. 傅老师课堂:Oracle高级应用之物化视图(materialized view)

    原文地址:http://hi.baidu.com/gukeming888/blog/item/2682f69481c8237154fb9662.html 物化视图 (Materialized View ...

  6. 傅老师课堂:Oracle高级查询之OVER (PARTITION BY ..) 1

    为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的. 注:标题中的红色order by是说明在使用该方法的时候必须要带上order by. 一.rank()/dense_r ...

  7. oracle高级函数去重,傅老师课堂:Oracle高级应用之去重聚合函数

    开篇一笑:高中的时候,自行车被偷,早上顺路搭同学的自行车.我坐在后座看到前面一大妈跑步,很猥琐的对同学说:"你看前面那个肥婆跑得屁股都甩圆了!"这货沉默了一下.当我们和大妈擦身而过 ...

  8. 傅老师课堂:Ajax高级应用之DWR原理解析(二)

    开篇一笑:周杰伦在沙漠中迷路了,这时他捡到一个神灯,他摸摸神灯,出来一个神仙,神仙说,我能满足你三个愿望.周杰伦一看,高兴的脱口而出:"哇塞,屌爆了!"结果,他痛苦的在地上呻吟.神 ...

  9. 傅老师课堂:TrieTree

    TrieTree与其说是一种算法,还不如说是一种解题的思路,我对海量数据的处理一直都是保持着一种积极的学习态度,TrieTree可以说是处理海量数据诸多方法中比较典型的一种,下面我提供了两种TrieT ...

最新文章

  1. REM+SVG Sprite,web app案例
  2. POJ 2488 A Knight's Journey (棋盘DFS)
  3. 数据表的三种基本操作(insert、delete、update)
  4. JMeter学习笔记--JMeter常用测试元件
  5. 四级重点高频词汇表_四级为什么自己估分和真实成绩不一样……?
  6. 神策数据《银行4.0数字化运营体系构建的方法与实践》正式发布
  7. String, StringBuilder 与StringBuffer的区别与联系
  8. 恭迎万亿级营销(圈人)潇洒的迈入毫秒时代 - 万亿user_tags级实时推荐系统数据库设计...
  9. 【好文翻译】10个免费的压力测试工具(Web)
  10. 通过分类为数组元素添加一个倒序的方法.
  11. Android音视频开发学习
  12. 双十一引流的标题怎样写,写标题注意的点
  13. RK3326 android10.0(Q) 系统精简瘦身
  14. 项目规范,介绍,规划与搭建,模块化开发,网站favicon,网站TDK
  15. C语言程序设计第五版谭浩强著 第五章部分课后习题答案
  16. poi读取Excel时日期为数字 的解决方法
  17. python中双向索引_Python 字典支持双向索引。Python 集合也支持双向索引
  18. java开发入门实验报告_Java实验二实验报告 20135108 李泽源
  19. ros订阅话题python_ROS之话题的发布与订阅
  20. ImagiqSimulator

热门文章

  1. 模拟电子基础之(一)半导体基础知识
  2. 手把手带你玩转Spark机器学习-使用Spark构建回归模型
  3. JreBel热部署插件激活教程
  4. 16秋计算机与技术鲁嘉华第一章作业
  5. [知乎]为什么上知乎?
  6. 虚拟机SQL服务器提示维护中,VMware vSphere常见问题汇总(二十五)
  7. 微信小程序轮播图设计
  8. C语言中宽字符和多字节字符
  9. 20个学习CSS的绝佳网站——让你从入门
  10. 关键路径中最早/迟发生时间