DB2数据库脏读带锁问题

本文描述了在DB2数据库8.2和9.5版本中,使用`with ur`声明的游标仍然可能导致NS锁的问题,从而引发锁超时和死锁。即使声明为只读,如果不添加`FOR READ ONLY`,数据库内部仍可能加锁。IBM官方文档建议在无更新或删除计划的查询中使用`FOR READ ONLY`以提高效率。解决方法是在只读游标后明确添加`FOR READ ONLY`选项,以避免不必要的锁竞争,提高系统并发性能。
摘要由CSDN通过智能技术生成

数据库版本: 8.2,9.5 问题描述:

    在数据库中使用 sqc 编程(动态及静态)时,当游标声明中的 sql 使用 with ur 方式时,数据库内部执行过程中发现依旧会使用 NS 锁,易导致数据库内部锁超时及死锁现象的发生。

问题现象:

case1 :游标定义如下: EXEC SQL DECLARE DynPara2Cur_cur CURSOR FOR SELECT  *  FROM  UM_TXNDB.TBL_UMTXN_DYN_PARA WITH UR;

当一个事务对表格发起 update 命令,并且不提交,此时执行包含上述游标语句的程序,程序会处于锁等待状态,现象如下图:

快照信息如下:

 

Application handl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值