• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle中查看引起Session阻塞的2个脚本分享

Oracle中查看引起Session阻塞的2个脚本分享

作者:壹頁書 字体:[增加 减小] 来源:互联网 时间:2017-05-11

壹頁書通过本文主要向大家介绍了oracle session,oracle kill session,oracle中的session,oracle v session,oracle session数等相关知识,希望本文的分享对您有所帮助

用户A执行删除,但是没有提交。

SQL> delete from test where object_id<10;
</div>

已删除8行。

用户B执行删除或者更新id<10的记录,则被阻塞。

SQL> update test set flag='N' where object_id<10;
</div>

遇到这种阻塞,首先需要确定问题。可以使用以下脚本。

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
</div>

结果如下:

USERNAME                              SID    SERIAL# LOGON_TIME
------------------------------ ---------- ---------- --------------
LIHUILIN                               14         87 09-11月-13
LIHUILIN                              139        655 09-11月-13
</div>

或者使用

select
(select username from v$session where sid=a.sid) blocker,
a.sid,' is blocking ',
(select username from v$session where sid=b.sid) blockee,
b.sid
from v$lock a,v$lock b
where a.block=1 and b.request>0 and a.id1=b.id1 and a.id2=b.id2;
</div>

结果如下:

BLOCKER                               SID 'ISBLOCKING'  BLOCKEE                               SID
------------------------------ ---------- ------------- ------------------------------ ----------
LIHUILIN                               14  is blocking  LIHUILIN                              139
</div>

Kill引起阻塞的Session

select 'alter system kill session '''||sid||','||serial#||''';' cmd from v$session where username='LIHUILIN' and sid=14;
</div>

结果如下:

CMD
-----------------------------------------
alter system kill session '14,87';
</div>

最后执行alter system命令,阻塞解除。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle中查看引起Session阻塞的2个脚本分享
  • ORACLE 如何查询被锁定表及如何解锁释放session

相关文章

  • 2017-05-11Oracle中instr函数使用方法
  • 2017-05-11ProC 连接Oracle代码
  • 2017-09-02windows操作系统Oracle数据库--删除归档日志
  • 2017-05-11ORACLE应用经验(1)
  • 2017-05-11Oracle SID存在解決方法
  • 2017-05-11如何解决Oracle EBS R12 - 以Excel查看输出格式为“文本”的请求时乱码
  • 2017-05-11ORA-12514及ORA-28547错误解决方案
  • 2017-05-11oracle错误代码大全(超详细)
  • 2017-12-17数据库事务中的隔离级别和锁+spring Transactional注解
  • 2017-05-11Oracle 11G密码180天过期后的修改方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle中获取执行计划的几种方法分析
    • oracle复习笔记之PL/SQL程序所要了解的知识点
    • PL/SQL 类型格式转换
    • oracle用什么SQL语句判断表存不存在
    • 给Oracle添加split和splitstr函数的方法
    • ORACLE 毫秒与日期的相互转换示例
    • Oracle用户密码含特殊字符时登陆失败问题
    • sqlplus登录\连接命令、sqlplus命令的使用大全
    • Oracle轻松取得建表和索引的DDL语句
    • Oracle中字符串连接的实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有