1 插入和delete中存在主键约束条件下。
案例2 ## 数据库会话insert语句阻塞delete语句
(i1)问题概述:
对数据库巡检发现,存在少量的TX锁等待,使用sql查询对应的sql语句进行分析。
2 执行会话为sqlplus脚本,即上一条sql导致了TX锁等待,使用如下sql语句查看即可。
select b.sql_text,event from v
s
e
s
s
i
o
n
a
,
v
session a, v
sessiona,vsql b
where a.sql_id = b.sql_id
and status=‘ACTIVE’
and (a.sid=123 or a.event like ‘’%TX%)
order by a.module;
得到的sql语句分别如下:
insert into T1 AS …
DELETE FROM T1 WHERE ID=…
发现为insert into存在的会话产生了TX锁,阻塞了下面的delete会话。很诧异且不存在对主键的操作,于是对会话执行的前一条sql进行分析发现为:
delete from T1 WHERE ID-=… 并且未提交。
于是阻塞问题已经清晰明了。