• 技术文章 >数据库 >Oracle

    怎样查询oracle被锁的表

    长期闲置长期闲置2022-01-26 10:37:52原创293

    在oracle中,可以利用SELECT语句查询被锁的表,该语句用于简单查询数据信息,语法“select*from v$locked_object a,dba_objects b where b.object_id=a.object_id”。

    本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

    怎样查询oracle被锁的表

    1.查询引起了锁表的原因

    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.action
      from v$sqlarea a, v$session s, v$locked_object l
      where l.session_id = s.sid
      and s.prev_sql_addr = a.address
      order by sid, s.serial#;

    2.查询被锁的表

    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

    3.查看是哪个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

    4.杀掉对应进程即解锁

    alter system kill session'135,397'

    --其中135是sid 397是serial#

    备注:该用户必须拥有DBA权限,否则提示找不到表和视图

    推荐教程:《Oracle视频教程

    以上就是怎样查询oracle被锁的表的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle
    上一篇:oracle怎样会让索引失效 下一篇:怎样删除oracle字段

    相关文章推荐

    • oracle怎么实现行列转换• oracle怎样转换日期格式• oracle怎么修改主键• oracle怎么查询游标• oracle怎么查询表的列数据

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网