科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道数据库并发控制技术(十)

数据库并发控制技术(十)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对数据库存取。

作者:付新 2007年6月7日

关键字: 并发控制 数据库新技术 数据库 付新专栏 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

数据库并发控制技术(十)3.锁定类型比较

锁定类型

描述

允许操作

禁止操作

意向共享表锁:Intensive Share Table Locks (IS)

该封锁表明该事务封锁了表上的一些元组并试图修改它们 (但是还未做修改,其它事务可读这些元组,但是不能修改这些元组 )。意向共享表封锁是限制最少的锁,提供了表上最大的并发度。

其他事务对该表的并发查询、插入、更新、删除或在该表上进行封锁,其他事务可以同时上意向共享锁(IS)、意向排他锁 (IX)、共享锁 (S)

其它事务以排它方式 (X)存取该表。

意向排它表锁:Intensive Exclusive Table Locks (IX)

该锁表明该事务已对表的元组进行了一次或多次修改 (其它事务不能访问这些元组 )。行排它表封锁较行共享表封锁稍严格。

其它事务并行查询、插入、更新、删除或封锁该表上行,允许多个事务在同一表上获得意向排它( IX)和意向共享 (IS)表锁。

其它事务对表进行共享或者排它读写封锁: S, X

共享表锁:Share Table Locks (S)

当一事务在一表上持有共享表封锁时,允许其他事务在表上作查询,但是不允许其他事务修改该表。

其它事务在该表上作查询,但是不允许作修改,且允许多个事务在同一表上并发地持有共享表封锁。

IXX

排它表锁: Exclusive Table Locks (X)

该封锁是表封锁中最严格的方式,只允许持有封锁的事务可对该表进行修改。

不允许任何操作。

其它事务对表执行任何 DML语句,即不能插入、修改和删除该表中的行,封锁该表中的行或以任何方式封锁表。

共享行锁(S

该行正被读取

 

 

排它行锁(X

该行正被修改

 

 

4.SQL语句锁定分析

DM对各种 DDL和GRANT 等非DML 语句都分解为增、删、改。下表为DM对各种DML语句和查询语句的封锁策略。

表:SQL语句封锁策略

SQL语句

表锁模式

行锁模式

脏读

读提交

重复读

可串行化

脏读

读提交

重复读

可串行化

SELECT…FROM TABLE…

IS

IS

IS

IS

S*

S

Range

INSERT INTO TABLE …

IX

IX

IX

X

X

X

UPDATE TABLE…

IX

IX

IX

X

X

X

DELETE FROM TABLE…

IX

IX

IX

X

X

X

注:S* 表示瞬时锁,在语句结束后释放;Range表示键范围锁。

上表只是系统在一般情况下的处理,当系统检测到有锁升级的可能,则会升级锁。一般而言,IS锁升级为 S锁,IX锁升级为 X锁,同时,不再进行行封锁。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章