了解锁
来源:互联网 发布:人工智能有哪些威胁 编辑:程序博客网 时间:2024/04/29 16:40
锁定是数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制。
在事务获取数据块当前状态的依赖关系之前,它必须保护自己不受其他事务对同一数据进行修改的影响。
锁粒度和层次结构
RID 用于锁定堆中的单个行的行标识符。
KEY 索引中用于保护可序列化事务中的键范围的行锁。
PAGE 数据库中的 8 KB 页,例如数据页或索引页。
EXTENT 一组连续的八页,例如数据页或索引页。
HOBT 堆或 B 树。保护索引或没有聚集索引的表中数据页堆的锁。
TABLE 包括所有数据和索引的整个表。
FILE 数据库文件。
APPLICATION 应用程序专用的资源。
METADATA 元数据锁。
ALLOCATION_UNIT 分配单元。
DATABASE 整个数据库。
锁模式:
共享锁(S):用于只读操作(SELECT),锁定共享的资源。共享锁不会阻止其他用户读,但是阻止其他的用户写和修改。
排他(独占)锁(X): 用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时对同一资源进行多重更新。
更新锁(U): 当更新事务数据需要获取排它锁时,必须先获取更新琐。引擎为防止死锁的发生,一次允许允许一个事务可以获得资源的更新锁(U 锁),只有获取更新锁的查询才可创建排它锁。
意向锁: 用于建立锁的层次结构。意向锁的类型有:意向共享 (IS)、意向排他 (IX) 以及意向排他共享 (SIX)。引擎在创建共享锁和独占锁之前,先使用意向锁来保护共享锁(S 锁)或排他锁(X 锁)放置在锁层次结构的底层资源上
架构锁(Sch-M):执行表的数据定义语言 (DDL) 操作时使用架构锁。在架构修改锁起作用的期间,该锁之外的所有操作都将被阻止.
大容量更新锁(BU 锁):当将数据大容量复制到表,且指定了 TABLOCK 提示或者使用 sp_tableoption 设置了 table lock on bulk 表选项时,将使用大容量更新锁。大容量更新锁(BU 锁)允许多个线程将数据并发地大容量加载到同一表,同时防止其他不进行大容量加载数据的进程访问该表。
监视与管理锁
使用 SQL Server Profiler监视Locks 事件,来捕获有关跟踪中锁事件的信息的锁事件类别。
使用系统监视器监视SQL Server Locks 对象,监视数据库引擎实例中的锁级别。
查询 sys.dm_tran_locks 动态管理视图获得有关数据库引擎 实例中锁当前状态的信息。
使用系统存储过程sp_lock (Transact-SQL) 返回有关数据库引擎实例中的活动锁的信息。对于 SQL Server 2005,请改用 sys.dm_tran_locks 动态管理视图。
使用系统视图sys.syslockinfo (Transact-SQL)返回有关数据库引擎 实例中的活动锁的信息。对于 SQL Server 2005,请改用 sys.dm_tran_locks 动态管理视图。
将死锁减至最少
按同一顺序访问对象。
避免事务中的用户交互。
保持事务简短并处于一个批处理中。
使用较低的隔离级别。
使用基于行版本控制的隔离级别。
将 READ_COMMITTED_SNAPSHOT 数据库选项设置为 ON,使得已提交读事务使用行版本控制。
使用快照隔离。
使用绑定连接。
- 了解锁
- csdn终于解锁了
- 博客解锁了,mark
- i718 触屏坏了,怎么解锁
- 忘了给scott账户解锁
- iPhone解锁密码忘记了怎么办
- MySQL表锁了如何解锁
- 解锁
- 解锁
- 解锁
- iPhone不能滑动解锁了怎么办?iPhone滑动解锁失灵解决方法
- iphone4美版卡贴解锁机突然搜索不到服务了
- ANDROID锁屏后解锁屏幕宽高反过来了
- db2检查什么表被锁住了,如何解锁
- Android 5.0的人脸解锁终于能用了
- 数据库无法更新无反应,锁住了吧,看解锁。
- “蓝湖”解锁了“自动切图”功能!
- SB了,pthread_cond_wait(),在等待的时候会解锁(阻塞之后,解锁mutex给别的线程),唤醒后加锁,
- WSS3SDK之:如何定制mobile页面中的字段渲染
- WSS3SDK之:演练--在mobile的显示窗体中定制列表项标题
- 李开复
- Oracle安装笔记
- WSS3SDK之:演练--在mobile页面中创建自定义字段渲染控件
- 了解锁
- SQL SERVER 中如何使用行锁
- 微软工程师讲解SQL server阻塞
- Javascript中最常用的55个经典技巧收藏
- 安装与操作mysql
- DisplayTag分页标签应用指南(转)
- "穿山甲"对"入水花"
- 如何结合使用 Subversion 和 Eclipse
- asp.net如何上传大文件?