来源:http://www.cnblogs.com/jsStudyjj/p/5382557.html
共享锁,又称为读锁,可以查看但无法修改和删除的一种数据锁。
中文名: | 共享锁 |
外文名: | Share Locks |
其他用户: | 可以并发读取数据 |
都不能获取: | 数据上的排它锁 |
由非更新: | 操作创建的锁 |
释义
共享锁:(读取)操作创建的锁。其他用户可以并发读取数据,但任何事物都不能获取数据上的排它锁,直到已释放所有共享锁。
共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,则事务T只能读A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
排它锁
排它锁:排它锁又称为写锁((eXclusive lock,简记为X锁)),若事物T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。它防止任何其它事务获取资源上的锁,直到在事务的末尾将资源上的原始锁释放为止。
独占锁和共享锁的区别
1.共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排它锁。获准共享锁的事务只能读数据,不能修改数据。
排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。
2.共享锁下其它用户可以并发读取,查询数据。但不能修改,增加,删除数据。资源共享.
共享锁的使用
在第一个连接中执行以下语句
begin tran
select * from table1 holdlock -holdlock人为加锁
where B='b2'
waitfor delay '00:00:30' --等待30秒
commit tran
在第二个连接中执行以下语句
begin tran
select A,C from table1
where B='b2'
update table1
set A='aa'
where B='b2'
commit tran
若同时执行上述两个语句,则第二个连接中的select查询可以执行
而update必须等待第一个事务释放共享锁转为排它锁后才能执行 即要等待30秒
可能很难,但是相信,坚持总会看到奇迹。 在结果还没有的时候,我唯一可以选择的就是努力奋斗,静下心来。 结果会慢慢的浮出水面。
相关推荐
2. 排它锁(X锁):排它锁是最严格的锁,它提供独占的写权限,不允许其他事务进行任何读或写操作。通过`Lock Table TableName In Exclusive Mode`语句可以设置。一旦表被加了排它锁,其他事务只能进行查询,不能执行...
共享锁(S)、排它锁(X)、行级共享锁(RS)、行级排它锁(RX)和共享行级排它锁(SRX)是不同级别的行级锁。 按加锁的意向,有意向共享锁(IS)、意向排它锁(IX)和共享意向排它锁(SIX)。意向锁用于表明一个...
排它锁(X):在事务对记录修改时,SQL Server 实施排它锁,其它事务看不到该数据,直到提交。 更新锁(U):当数据修改时,首先实施更新锁,遍历整张表,找到要修改的记录,再将更新锁提升为排它锁,进行修改。...
例如,共享锁防止了脏读,排它锁防止了丢失更新和不可重复读,更新锁则是为了减少死锁的可能性。意向锁则提高了锁管理的效率,使得数据库系统在处理锁请求时不必逐个检查底层资源。 总结来说,锁是数据库并发控制的...
DML锁的目的在于保证并发情况下的数据完整性,它也是我们最常见和常用的锁,本文我们主要讨论DML锁。在Oracle数据库中,DML锁...3 SX(Row-X) 行级排它锁,在提交前不允许做DML操作 Insert、Update、Delete and so on
- 共享行级排它锁(SRX锁) 6. **SQL操作与锁模式**: - NULL:允许RS、RX、S、SRX、X锁,例如SELECT语句。 - RS:允许RS、RX、S、SRX,例如`LOCK TABLE ... IN ROW SHARE MODE`。 - RX:允许RS、RX,例如...
除了基础的共享锁(S锁)和排它锁(X锁),SQL SERVER引入了更新锁(Update Lock)和意向锁(Intention Lock)。更新锁用于防止死锁,当事务尝试修改数据时,首先施加更新锁,实际修改时升级为排它锁,未修改时降级...
- **共享锁(S锁)**:允许多个事务同时读取数据,但阻止其他事务获取排它锁。 - **排它锁(X锁)**:阻止其他事务获取任何类型的锁。用于写操作,保证数据在修改过程中不被其他事务读取或修改。 - **意向锁**:意向...
在Oracle中,最基本的锁类型是排它锁(X锁)和共享锁(S锁)。X锁用于保护数据不被其他事务修改,而S锁则允许多个事务同时读取数据但不允许修改。这两种锁遵循ACID原则,防止并发操作导致的数据不一致问题,如丢失...
* 5=S/Row-X (SSX,共享行级排它锁) * 6=Exclusive(排它锁) 在实际应用中,锁机制是非常重要的。锁机制可以防止多个用户同时访问同一个数据项,避免了数据的不一致性和错误。但是,锁机制也可能导致死锁的出现。...
锁分为两大类:排它锁(X锁)和共享锁(S锁)。X锁允许持有者对数据进行修改,不允许其他事务获取任何类型的锁;S锁则允许事务读取数据,但不允许其他事务获取X锁,防止数据被修改。 在DB2中,锁的应用是多粒度的,...
在Oracle中,锁主要分为两大类型:排它锁(Exclusive Locks,X锁)和共享锁(Share Locks,S锁)。X锁允许一个事务独占数据对象,不允许其他事务进行修改。而S锁则允许多个事务共享数据对象,可以读取但不能进行删除...
在Oracle数据库中,锁的主要类型包括排它锁(X锁)和共享锁(S锁)。 - **排它锁(X锁)**:当事务T对数据D加X锁时,其他任何事务都无法对D添加任何类型的锁,直到T释放D上的X锁。通常,在修改数据前需要获取排它锁...
1. 数据库级锁(Database-Level Locks):在访问数据库时,系统会自动在该数据库上加上一个共享(S)锁,以防止其他用户删除数据库或在该数据库上加排它(X)锁。 2. 表级锁(Table-Level Locks):锁定的对象是一...
锁主要有两种类型:排它锁(X锁)和共享锁(S锁)。X锁不允许其他事务对锁定资源进行任何操作,而S锁仅允许读取,不允许修改。 2. DB2的并发控制 在DB2中,锁的应用非常灵活,支持对表空间、表、行和索引进行多粒度...
锁可以分为两类:**排它锁(X锁)**和**共享锁(S锁)**。 - **排它锁(X锁)**:如果事务\( T \)对数据\( D \)加了X锁,则其他任何事务都不能再对\( D \)加任何类型的锁,直到事务\( T \)释放\( D \)上的X锁。通常...
- **独占锁(排它锁)**:一旦某一资源被加上了独占锁,其他任何进程都无法再对该资源加任何类型的锁,只能等待该资源上的独占锁被释放。 - **共享锁**:多个进程可以同时对同一资源加上共享锁,但不能加独占锁。 ...
锁可以分为两大类:排它锁(X锁)和共享锁(S锁)。X锁是一种独占锁,一旦事务对数据加了X锁,其他事务既不能读取也不能修改这部分数据;S锁是共享锁,允许多个事务同时对数据加S锁进行读取,但是不能进行修改。 在...