共享锁(S)
共享 (S) 锁允许并发事务读取 (SELECT) 一个资源。资源上存在共享 (S) 锁时,任何其它 事务都不能修改数据。一旦已经读取数据,便立即释放资源 上的共享 (S) 锁,除非将事务隔离级别设置为可重复读或更高级别,或者在事务生存周期内用锁定提示保留共享 (S) 锁。
Select 语句就会先给表加上共享锁,如果Select性能很慢,就会造成Update/Delete等待
更新锁(U)
更 新 (U) 锁可以防止通常形式的死锁。一般更新模式由一个事务组成,此事务读取记录,获取资源(页或行)的共享 (S) 锁,然后修改行,此操作要求锁转换为排它 (X) 锁。如果两个事务获得了资源上的共享模式锁,然后试图同时更新数据,则一个事务尝试将锁转换为排它 (X) 锁。共享模式到排它锁的转换必须等待一段时间,因为一个事务的排它锁与其它事务的共享模式锁不兼容;发生锁等待。第二个事务试图获取排它 (X) 锁以进行更新。由于两个事务都要转换为排它 (X) 锁,并且每个事务都等待另一个事务释放共享模式锁,因此发生死锁。
若要避免这种潜 在的死锁问题,请使用更新 (U) 锁。一次只有一个事务可以获得资源的更新 (U) 锁。如果事务修改资源,则更新 (U) 锁转换为排它 (X) 锁。否则,锁转换为共享锁。
排它锁(X)
排它 (X) 锁可以防止并发事务对资源进行访问。其它事务不能读取或修改排它 (X) 锁锁定的数据。
NOLOCK(不加锁)
此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下, 用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。
HOLDLOCK(保持锁)
此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。
UPDLOCK(修改锁)
此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁, 并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。
TABLOCK(表锁)
此选项被选中时,SQL Server 将在整个表上置共享锁直至该命令结束。 这个选项保证其他进程只能读取而不能修改数据。
PAGLOCK(页锁
此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。
TABLOCKX(排它表锁)
此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
ReadPast(跳过修改中的行)
订票系统可以用到,我正在订1个座位,事务正在提交,那么查当前可订阅的座位就要忽略 正在订的座位。
分享到:
相关推荐
sql server锁机制,介绍sql的各种锁的文档
SQlServer中的锁机制,并有示例作为参考。
SQLserver锁和事务隔离级别的比较与使用[定义].pdf
资源名称:SQL server锁的机制资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
此文档中详细的记载了,快速对SQL Server锁机制进行掌握的窍门,希望可以帮到下载的朋友们!
SQL SERVER 锁
SQL server锁的机制 SQL server锁的机制 SQL server锁的机制
SQL SERVER 有资源紧张时,常会有死锁发生,用此工具可进行解锁操作。
sqlserver锁机制研究,打好数据库基础
关于SQLserver2008的锁机制描述
SQLServer常见锁表优化语句
sqlserver 锁表语句分享,需要的朋友可以参考下
一. 为什么要引入锁 当多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: ◆丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个...MS-SQL Server 使用以下资源锁模式。
锁机制详解锁机制详解锁机制详解锁机制详解锁机制详解锁机制详解锁机制详解锁机制详解锁机制详解锁机制详解锁机制详解
纯英文,专门解析自旋锁起因及解决方法,SQL SERVER DBA必备
本文举例说明SQL Server死锁产生的原因,并提出了解决的办法。
SQLServer200数据库自动杀锁。 很不错哦,你懂得!初学者必备。祝您成功!
共享锁主要是为了共享读(select),如果存在事务(一个或多个)拥有对表中数据(关于锁数据的多少,视锁的粒度而定)的共享锁,不允许对锁定的数据进行更新(update)(从锁的角度讲,即不允许事务获取排他锁
SQL的锁机制,详细介绍sql Server的锁机制原理。