扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:付新 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) |
当一事务在一表上持有共享表封锁时,允许其他事务在表上作查询,但是不允许其他事务修改该表。 |
其它事务在该表上作查询,但是不允许作修改,且允许多个事务在同一表上并发地持有共享表封锁。 |
IX,X |
排它表锁: 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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者