zoukankan      html  css  js  c++  java
  • 使用for update卡住锁表的解决办法

    今天使用select * from bd_corp for update改了好几次之后,突然执行N长时间都不行,马上给用友打电话,我听到了“锁表”两个字。

    马上查询百度。

    们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。

    1,查看哪个表被锁

    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;

    2,查看是哪个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;

    3,杀掉对应进程

      执行命令:alter system kill session'1025,41';

      其中1025为sid,41为serial#.

     

  • 相关阅读:
    MySQL数据表类型 = 存储引擎类型
    删除链表节点
    链表逆序(反转)
    腾讯2012笔试题
    MysqL数据表类型
    进程间的通信方式
    网络套接字编程学习笔记一
    HTTP报头
    C语言排序算法
    交换排序经典的冒泡排序算法总结
  • 原文地址:https://www.cnblogs.com/sumsen/p/2524767.html
Copyright © 2011-2022 走看看