暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
事务锁定和行版本控制指南 - SQL Server _ Microsoft Docs.pdf
63
73页
2次
2024-12-10
免费下载
2020/5/14 事务锁定和行版本控制指南 - SQL Server | Microsoft Docs
https://docs.microsoft.com/zh-cn/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view=sql-server-ver15 1/73
事务锁定和行版本控制指南
2020/03/10
本文内容
事务基本知识
锁定和行版本控制基本知识
数据库引擎中的锁定
死锁数
锁分区
SQL Server 数据库引擎中基于行版本控制的隔离级别
自定义锁定和行版本控制
高级事务信息
其他阅读主题
适用于: SQL Server Azure SQL 数据库 Azure Synapse Analytics (SQL DW)
并行数据仓库
在任意数据库中,事务管理不善常常导致用户很多的系统中出现争用和性能问题。 随着
访问数据的用户数量的增加,拥有能够高效地使用事务的应用程序也变得更为重要。
指南说明 SQL Server 数据库引擎使用的锁定和行版本控制机制,以确保每个事务的物理
完整性并提供有关应用程序如何高效控制事务的信息。
适用范围:SQL ServerSQL Server 2005 (9.x) SQL Server 2019 (15.x),除非特别指
出)和 Azure SQL 数据库
事务基本知识
事务是作为单个逻辑工作单元执行的一系列操作。 一个逻辑工作单元必须有四个属性,
称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务。
原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
事务在完成时,必须使所有的数据都保持一致状态。 在相关数据库中,所有规则都必须
应用于事务的修改,以保持所有数据的完整性。 事务结束时,所有的内部数据结构(如
B 树索引或双向链表)都必须是正确的。
隔离
由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。 事务识别数据时数据
2020/5/14 事务锁定和行版本控制指南 - SQL Server | Microsoft Docs
https://docs.microsoft.com/zh-cn/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view=sql-server-ver15 2/73
所处的状态,要么是另一并发事务修改它之前的状态,要么是第二个事务修改它之后的
状态,事务不会识别中间状态的数据。 这称为可串行性,因为它能够重新装载起始数
据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持续性
完成完全持久的事务之后,它的影响将永久存在于系统中。 该修改即使出现系统故障也
将一直保持。 SQL Server 2014 (12.x) 和更高版本将启用延迟的持久事务。 提交延迟的持
久事务后,该事务日志记录将保留在磁盘上。 有关延迟事务持续性的详细信息,请参阅
主题事务持续性
SQL 程序员要负责启动和结束事务,同时强制保持数据的逻辑一致性。 程序员必须定义
数据修改的顺序,使数据相对于其组织的业务规则保持一致。 程序员将这些修改语句包
括到一个事务中,使 SQL Server 数据库引擎 能够强制该事务的物理完整性。
企业数据库系统(如SQL Server 数据库引擎实例)有责任提供一种机制,保证每个事务
的物理完整性。 SQL Server 数据库引擎提供:
锁定设备,使事务保持隔离。
通过记录设备,保证事务持久性。 对于完全持久的事务,在其提交之前,日志记录
将强制写入磁盘。 因此,即使服务器硬件、操作系统或 SQL Server 数据库引擎
例自身出现故障,该实例也可以在重新启动时使用事务日志,将所有未完成的事务
自动地回滚到系统出现故障的点。 提交延迟的持久事务后,该事务日志记录将强制
写入磁盘。 如果在日志记录强制写入磁盘前系统出现故障,此类事务可能会丢失。
有关延迟事务持续性的详细信息,请参阅主题事务持续性
事务管理特性,强制保持事务的原子性和一致性。 事务启动之后,就必须成功完成
(提交),否则SQL Server 数据库引擎实例将撤消该事务启动之后对数据所做的所
有修改。 此操作称为回滚事务,因为它将数据恢复到那些更改发生前的状态。
控制事务
应用程序主要通过指定事务启动和结束的时间来控制事务。 可以使用 Transact-SQL 语句
或数据库应用程序编程接口 (API) 函数来指定这些时间。 系统还必须能够正确处理那些
在事务完成之前便终止事务的错误。 有关详细信息,请参阅事务ODBC 中的事务以及
SQL Server Native Client (OLEDB) 中的事务
默认情况下,事务按连接级别进行管理。 在一个连接上启动一个事务后,该事务结束之
前,在该连接上执行的所有 Transact-SQL 语句都是该事务的一部分。 但是,在多个活动
的结果集 (MARS) 会话中,Transact-SQL 显式或隐式事务将变成批范围的事务,这种事
务按批处理级别进行管理。 当批处理完成时,如果批范围的事务还没有提交或回滚,
SQL Server 将自动回滚该事务。 有关详细信息,请参阅使用多重活动结果集 (MARS)
启动事务
of 73
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜