oralce的锁

oracle的锁主要有TX锁、TM锁、DDL锁。

TX锁是事务锁,对数据的修改都会产生一个事务锁,同时在修改数据的过程中,为了防止修改表结构,oracle会产生一个TM锁。
可以用一下的脚本查看系统中的锁
SQL> select username,l.SID,id1,id2,l.LMODE,request,block,l.TYPE
  2  from v$lock l, v$session s where l.SID = s.SID and s.USERNAME= USER
  3  ;
 
USERNAME                              SID        ID1        ID2      LMODE    REQUEST      BLOCK TYPE
------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ----
NCSRPT                                 10      30508          0          3          0          0 TM
NCSRPT                                 10     262190        524          6          0          0 TX

DDL过程的伪代码如下:
Begin
     Commit;
    DDL_Statement;
    Commit;
Exception
    When others then rollback;
End;

从上面的伪代码可以知道,DDL会先提交事务。所以一般来说在PL/SQL中写DDL语句需要考虑这种情况。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值