enq: TX - row lock contention“等待事件的处理
session1:
SQL> conn scott/triger
Connected.
SQL> CREATE TABLE tx_eg ( num number, txt varchar2(10), sex varchar2
(10) ) INITRANS 1 MAXTRANS 1;
INSERT into tx_eg VALUES ( 1, 'First','FEMALE' );
INSERT into tx_eg VALUES ( 2, 'Second','MALE' );
INSERT into tx_eg VALUES ( 3, 'Third','MALE' );
INSERT into tx_eg VALUES ( 4, 'Fourth','MALE' );
INSERT into tx_eg VALUES ( 5, 'Fifth','MALE' );
COMMIT;
Table created.
SQL>
1 row created.
SQL>
1 row created.
SQL>
1 row created.
SQL>
1 row created.
SQL>
1 row created.
SQL>
Commit complete.
SQL> UPDATE tx_eg SET txt='Garbage' WHERE num=1;
1 row updated.
session2:oracle@localhost ~]$ !sql
sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 24 15:43:20 2013
Copyright (c) 1982, 2005,
Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
Production
With the Partitioning, OLAP and Data Mining options
SQL> conn scott/triger
Connected.
SQL> UPDATE tx_eg SET txt='Garbage' WHERE num=1;
解决方法:
SQL> select * from v$session_wait;
SID SEQ# EVENT
P1TEXT
P1 P1RAW P2TEXT
P2 P2RAW
---------- ----------
----------------------------------------------------------------
----------------------------------------------------------------
---------- ----------------
----------------------------------------------------------------
---------- ----------------
P3TEXT
P3 P3RAW WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS
WAIT_TIME SECONDS_IN_WAIT STATE
----------------------------------------------------------------
---------- ---------------- ------------- -----------
----------------------------------------------------------------
---------- --------------- -------------------
135 33 enq: TX - row lock contention
name|mode
1415053318 0000000054580006 usn<<16 | slot
131073 0000000000020001
sequence
1761 00000000000006E1 4217450380 1 Application
0 2554 WAITING
136 33 enq: TX - row lock contention
name|mode
1415053318 0000000054580006 usn<<16 | slot
131073 0000000000020001
sequence
1761 00000000000006E1 4217450380 1 Application
0 912 WAITING
138 87 SQL*Net message from client
driver id
1650815232 0000000062657100 #bytes
1 0000000000000001
0 00 2723168908 6 Idle
0 1987 WAITING
141 5425 i/o slave wait
msg ptr
2188218896 00000000826D9210
0 00
0 00 2723168908 6 Idle
0 661 WAITING
发现enq: TX - row lock contention
sql>select SID,TYPE,ID1,ID2,LMODE,REQUEST,CTIME,BLOCK from V$lock
where block=1 or request<>0;
SID TY ID1 ID2 LMODE REQUEST CTIME
BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
----------
135 TX 131073 1761 0 6 1840
0
136 TX 131073 1761 0 6 198
0
138 TX 131073 1761 6 0 1852
1
---查看sid 138 在做什么
SQL> select sid,event,SQL_ADDRESS,SQL_ID from v$session where
sid=138;
SID EVENT
----------
----------------------------------------------------------------
SQL_ADDRESS SQL_ID
---------------- -------------
138 SQL*Net message from client
00
去看看具体等待什么吧
SQL> select sid,event,SQL_ADDRESS,SQL_ID from v$session
where sid in (7879,8167);
SID EVENT SQL_ADDRESS
SQL_ID
----- --------------------------------------------------
---------------- -------------
7879 enq: TX - row lock contention
C000000CCE8A76F0 08qruv04r2v6d
8167 enq: TX - row lock contention
C000000CCE8A76F0 08qruv04r2v6d
看看sql语句是什么
SQL> select SQL_ID,SQL_TEXT from v$sql
2* where sql_id = '08qruv04r2v6d'
-----查看等待的对象
SQL> SELECT owner, object_name, subobject_name, value
2 FROM v$segment_statistics
3 WHERE statistic_name='row lock waits'
4 AND value > 0
5 ORDER BY 4 DESC;
OWNER OBJECT_NAME
------------------------------ ------------------------------
SUBOBJECT_NAME VALUE
------------------------------ ----------
SCOTT TX_EG
方法二:
SQL> SELECT row_wait_obj#,
2 row_wait_file#,
3 row_wait_block#,
4 row_wait_row#
5 FROM v$session
6 WHERE sid=135;
ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#
------------- -------------- --------------- -------------
54999 4 485 0
SQL> select object_name from dba_objects where object_id in (54999);
OBJECT_NAME
---------------------------------------------------------------------
-----------
TX_EG
SQL> select sid,serial# from v$session where sid=5364;
SID SERIAL#
----- ----------
5364 24841
--杀会话
alter system kill session '5364,24841';
SQL> select paddr from v$session where sid= 5364;
PADDR
----------------
C000000D2194FCD0
SQL> select spid from v$process where addr='C000000D2194FCD0';
SPID
------------------------
19669
整合为一句:
Select spid from v$process where addr in(select paddr from v$session
where sid= xxxx;)
SQL> ! ps -ef | grep 19669
orapp0 19669 1 0 Jul 20 ? 0:03 oraclePP0
(DESCRIPTION=(LOCAL=NO)(SDU=32767))
和客户应用管理人员确认后,执行alter system kill session '5364,24841';
命令没能杀掉该会话,只好在操作系统层面通过kill -9 19669杀掉进程,结束会话
- 大表建立索引引发enq: TX - row lock contention等待
今天要给一张日志表(6000w数据)建立索引,导致生产系统行锁部分功能卡住 create index idx_tb_cid on tb_login_log(user_id); 开始执行后大概花费了20 ...
- ORACLE等待事件:enq: TX - row lock contention
enq: TX - row lock contention等待事件,这个是数据库里面一个比较常见的等待事件.enq是enqueue的缩写,它是一种保护共享资源的锁定机制,一个排队机制,先进先出(FIF ...
- 解决一则enq: TX – row lock contention的性能故障
上周二早上,收到项目组的一封邮件: 早上联代以下时间点用户有反馈EDI导入"假死",我们跟踪了EDI导入服务,服务是正常在跑,可能是处理的慢所以用户感觉是"假死" ...
- ORACLE AWR结合ASH诊断分析enq: TX - row lock contention
公司用户反馈一系统在14:00~15:00(2016-08-16)这个时间段反应比较慢,于是生成了这个时间段的AWR报告, 如上所示,通过Elapsed Time和DB Time对比分析,可以看出在这 ...
- AWR之-enq TX - row lock contention的性能故障-转
1 对这一个小时进行AWR的收集和分析,首先,从报告头中看到DB Time达到近500分钟,(DB Time)/Elapsed=8,这个比值偏高: Snap Id Snap Time Sessio ...
- [Oracle] enq: TX - row lock contention 优化案例
依据开发反馈.近期每天早上7:30应用会报警.应用的日志显示数据库连接池满了.新的连接被拒绝. 首先.我做了ASH报告(报告区间:7:25 ~ 7:35),从ASH的等待事件发现enq: TX - r ...
- enq: TX - row lock contention故障处理一则
一个非常easy的问题,之所以让我对这个问题进行总结.一是由于没我想象的简单,在处理的过程中遇到了一些磕磕碰碰,甚至绕了一些弯路.二是引发了我对故障处理时的一些思考. 6月19日,下午5点左右.数据库 ...
- enq: TX - row lock contention 参数P1,P2,P3说明
enq: TX - row lock contention三个参数,例如,下面的等待事件 * P1 = name|mode <<<<<<< ...
- 记一则update 发生enq: TX - row lock contention 的处理方法
根据事后在虚拟机中复现客户现场发生的情况,做一次记录(简化部分过程,原理不变) 客户端1执行update语句 SQL> select * from test; ID NAME --------- ...
随机推荐
- 删除所有约束、表、视图等SQL脚本
--删除所有约束.表.视图等SQL脚本 --############################################### --删除所有外键约束 --################# ...
- Flask 学习系列(二)---Jinjia2模板
下面是一个jinjia2的简单模板的例子: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- 重新安装Magento CE 2.1.0
删除 var/cache 文件夹 删除 var/generation文件夹 删除 app/etc/config.php 删除 app/etc/env.php 如果您觉得阅读本文对您有帮助,欢迎转载本文 ...
- 安卓4.4不支持touchend事件解决办法
最近的项目要求兼容到OPPO A31这款手机,这款手机是安卓4.4,调试时遇到了touch手指不能滑动页面切换的问题,最终解决通过在touchstart事件里面加上一个 event.preventDe ...
- dos命令-环境变量-数据类型-命名规范
JAVA第一天笔记--dos命令-环境变量-数据类型-命名规范 1.能够阐述JDK和JRE之间区别 JDK(Java Development Kit)是提供给开发人员使用的JAVA开发工具包(java ...
- Android GreenDao 深查询 n:m 的关系
在我的应用程序这样设计的关系:和我想选择至少一个用户作为一个朋友的所有聊天. 基本上,我想要执行以下查询:\ SELECT c.* FROM CHAT c, USER u, UserChats uc ...
- CSS实现画一条竖线
在开发中遇到一种需求:画一条竖线. 横线倒是很好画,直接<hr/>就可以了.但是竖线没有这么现成的标签,囧囧囧~ 在网上搜索了很多资料,莫衷一是,也没有什么可信的结果. 1.原来这就是竖线 ...
- COGS 36. 求和问题
时间限制:1.2 s 内存限制:128 MB [问题描述] 在一个长度为n的整数数列中取出连续的若干个数,并求它们的和. [输入格式] 输入由若干行组成,第一行有一个整数n ...
- 查看mysql已有用户并删除
查看: SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 删除: drop us ...
- vue实现微信分享朋友圈和朋友功能
vue实现微信分享朋友圈和朋友功能 A-A+ haibao 2018-10-25 11 21 6.2 k 百度已收录 前端开发 温馨提示:本文共3536个字,读完预计9分钟. 这两天在开发 ...