DM事务与锁

1.自动提交
自动提交模式在 DISQL 中,用户也可以通过执行如下语句来设置当前会话为自动提交模式:
SET AUTOCOMMIT ON;

2.手动提交模式
可以执行 COMMIT 或者 ROLLBACK 来提交或者回滚事务

3.隐式提交
在这里插入图片描述

  1. CREATE;
  2. ALTER;
  3. TRUNCATE;
  4. DROP;
  5. GRANT;
  6. REVOKE;
  7. 审计设置语句
    隐式提交前面的语句

4.自动回滚
在这里插入图片描述
在这里插入图片描述

Disql添加数据后没有commit直接disconn端开连接数据消失
5.回滚到保存点
在这里插入图片描述在这里插入图片描述

回滚到插入数据之前

6.语句级回滚
在这里插入图片描述

当 INI 参数 ROLL_ON_ERR 为缺省值 0 时,在 SQL 语句执行过程中发生的错误,将会
导致语句级回滚,例如违反唯一性、死锁(访问相同数据而产生的竞争)、运算溢出等。在
SQL 语句解析的过程中发生错误(例如语法错误),由于未对数据产生任何影响,因此不会
产生语句级回滚。
在这里插入图片描述

例如设置主键后主键值重复

7.锁模式
锁模式指定并发用户如何访问锁定资源。DM 数据库使用四种不同的锁模式:共享锁、
排他锁、意向共享锁和意向排他锁。

  1. 共享锁
    共享锁(Share Lock,简称 S 锁)用于读操作,防止其他事务修改正在访问的对象。
    这种封锁模式允许多个事务同时并发读取相同的资源,但是不允许任何事务修改这个资源。
  2. 排他锁
    排他锁(Exclusive Lock,简称 X 锁)用于写操作,以独占的方式访问对象,不允
    许任何其他事务访问被封锁对象;防止多个事务同时修改相同的数据,避免引发数据错误
    防止访问一个正在被修改的对象,避免引发数据不一致。一般在修改对象定义时使用。
  3. 意向锁
    意向锁(Intent Lock)用于读取或修改被访问对象数据时使用,多个事务可以同时
    对相同对象上意向锁,DM 支持两种意向锁:
  1. 意向共享锁(Intent Share Lock,简称 IS 锁):一般在只读访问对象时使用;
  2. 意向排他锁(Intent Exclusive Lock,简称 IX 锁):一般在修改对象数据时
    使用。

7.1.使用共享锁

事务一
在这里插入图片描述

事务二
在这里插入图片描述

可以查询但无法操作数据

7.2.使用排他锁
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

排他锁,另一个事务无法执行,无法查询数据

7.3.使用意向共享锁
事务一
在这里插入图片描述

事务二
在这里插入图片描述

增加列失败,添加数据成功

7.4.使用意向排他锁

事务一
在这里插入图片描述

事务二
在这里插入图片描述

添加数据,添加列失败

8.查看锁
Select *from “V$LOCK”
在这里插入图片描述

ADDR 列表示锁的内存地址;TRX_ID 列表示锁所属的事务 ID;LTYPE 列表示锁 的类型,可能是 OBJECT(对象锁)或者 TID(TID 锁);LMODE 表示锁的模式,可能的值有 S(共享锁)、X(排他锁)、IS(意向共享锁)、IX(意向排他锁);BLOCKED 列表示 锁是否处于上锁等待状态,0 表示已上锁成功,1 表示处于上锁等待状态;TABLE_ID 列对 于对象锁,表示表对象或字典对象的 ID,对于 TID 锁,表示封锁记录对应的表 ID;ROW_IDX 列为 TID 锁封锁记录的行信息;TID 列为 TID 锁对象事务 ID。

社区地址:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值