oracle实例提示blocked,Oracle阻塞(blockingblocked)实例详解

本文详细介绍了Oracle数据库中阻塞现象的原因和排查方法,通过示例展示了如何定位阻塞者和被阻塞者,并提供了相关SQL脚本来查询阻塞情况和锁的持有状态,帮助DBA解决性能问题。
摘要由CSDN通过智能技术生成

一、概述:

阻塞是DBA经常碰到的情形,尤其是不良的应用程序设计所造成的阻塞将导致数据库性能的严重下降,直至数据库崩溃。对DBA而言,有必要知道如何定位到当前系统有哪些阻塞,到底谁是阻塞者,谁是被阻塞者。本文对此给出了描述并做了相关演示。

二、演示阻塞:

--更新表,注,提示符scott@CNMMBO表明用户为scott的session,用户名不同,session不同。

scott@CNMMBO> update emp set sal=sal*1.1 where empno=7788;

1 row updated.

scott@CNMMBO> @my_env

SPID SID SERIAL# USERNAME PROGRAM

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

11205 1073 4642 robin oracle@SZDB (TNS V1-V3)

--另起两个session更新同样的行,这两个session都会处于等待,直到第一个session提交或回滚

leshami@CNMMBO> update scott.emp set sal=sal+100 where empno=7788;

goex_admin@CNMMBO> update scott.emp set sal=sal-50 where empno=7788;

--下面在第一个session 查询阻塞情况

scott@CNMMBO> @blocker

BLOCK_MSG BLOCK

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

pts/5 ('1073,4642') is blocking 1067,10438 1

pts/5 ('1073,4642') is blocking 1065,4464 1

--上面的结果表明session 1073,4642 阻塞了后面的2个

--即session 1073,4642是阻塞者,后面2个session是被阻塞者

--Author : Leshami

--Blog : http://blog.csdn.net/leshami

--下面查询正在阻塞的session id&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值