- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事务处理与并发控制
事务处理及并发控制
单世民
概述
并发性是一个非常重要的概念,是用来解决多个用户对同一数据进行操作的问题。特别是对于分布式数据库来说,这个特点更加突出。提高数据库的处理速度,仅依靠提高计算机的物理速度是不够的,还必须充分考虑数据库的并发性问题,提高数据库并发的效率。Oracle Database 10g系统通过使用事务和锁机制,解决了数据库的并发性问题。
事务
事务是数据库区别于文件系统的特性之一。所谓事务,就是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务的特征
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
数据库中引入数据库的主要目的就是:事务会把数据库从一种一致状态转变为另一种一致状态。
事务控制语句
Oracle中的一个重要概念就是没有“开始事务处理”的语句。用户不能显式地开始一个事务处理。事务处理会隐式地开始及第一条修改数据的语句,或者一些要求事务处理的场合。
如果发出COMMIT或ROLLBACK,就会显式地结束一个事务。
ROLLBACK TO SAVEPOINT命令不会结束事务!
事务控制语句
COMMIT完整形式是COMMIT WORK,二者等价。COMMIT会结束你的事务,并使得已做的所有修改成为永久性的(持久保存)。
ROLLBACK完整形式是ROLLBACK WORK,二者等价。ROLLBACK会结束你的事务,并撤销正在进行的所有未提交的修改,把数据库块恢复到事务开始之前的状态。
事务控制语句
作为开发人员,用户应该使用commit或rollback显式终止用户的事务处理,否则用户正在使用的工具或环境就将为用户选择其中的一种方式。
例如,如果用户没有进行提交或回滚就退出了用户的SQL*Plus会话,那么SQL*Plus就会认为用户希望提交用户工作。无论用户是否想要提交工作,系统都会为用户进行提交。
无论事务处理的规模如何,提交都是非常快速的操作。
事务控制语句
提交时执行的任务
为用户的事务处理声称SCN(system change number,系统改变编号)。这是Oracle的内部时钟,可以称为数据库时间。SCN不是传统意义上的时钟,因为它不是随着时间推移而递进。相反,他是在事务处理提交时递进,由Oracle在内部使用,以对事务处理排序。
将所有剩余的已经缓冲的重做日志表项写入磁盘,并且将SCN记录到在线重做日志文件中。这要由数据库后台进程LGWR执行。这一步实际上就是所谓的“提交”,使事务处理永久地生效。
释放用户会话所占有的所有锁定。
事务控制语句
SAVEPOINTSAVEPOINT允许你在事务中创建一个标记点。一个事务中可以有多个SAVEPOINT。
ROLLBACK TO SAVEPOINT此语句和SAVEPOINT命令配合使用,可以把事务回滚到标记点,而不回滚在此标记点之前的任何工作。
SET TRANSACTION此语句允许你设置不同的事务属性,比如事务的隔离级别以及事务是只读的还是可读写的。
事务的特征-原子性
Oracle中事务的执行存在两种情况:
构成事务的每条语句都会提交
所有语句都回滚
Oracle的这种保护可以延伸到单个的语句,即一个语句要么完全成功,要么这条语句完全回滚。
事务原子性的级别
语句级原子性
过程级原子性
事务级原子性
事务的特征-原子性
语句级原子性语句所导致的任何副作用(例如触发器操作)都会被认为是该语句的一部分。为了得到语句级原子性,Oracle隐式地在每个数据库调用外面包了一个SAVEPOINT。形式化表现如下例:
SAVEPOINT statement1;
delete from card where cid=2;
If error then rollback to statement1;
SAVEPOINT statement2;
delete from card where cid=8;
If error then rollback to statement2;
事务的特征-原子性
过程级原子性Oracle把客户提交的代码块认为是“语句”。特别的,PL/SQL匿名块也会被当作是语句。
事务级原子性
事务的隔离级别
事务的隔离级别(transaction isolation level)一个事务对数据库的修改及并行的另外一个事务的隔离程度。
输出处理可能出现的3种问题:
幻像读取(phantom read)
不可重复读取(nonrepeatable read)
脏读(dirty read)
事务的隔离级别
SQL标准定义的隔离级别
隔离级别
脏读
不可重复读取
幻像读取
READ
您可能关注的文档
最近下载
- 《Price Action Protocol (价格行为进阶) 》YF整理(简体中文版)[yf].docx VIP
- 交管12123学法减分考试题库(含答案).docx VIP
- 原材料采购管理制度(3篇).docx VIP
- 养猪场转让协议模板合同(参考文本)5篇.docx
- 商业地产招商佣金实施细则.docx VIP
- 2025年江西省人才发展集团有限公司应届毕业生招聘2人备考试题及答案解析.docx VIP
- 变更住所委托书范本.docx VIP
- 我的朋友好好吃(新版).ppt VIP
- 陕西省普通高中物理学业水平测试.docx VIP
- 工程伦理2.0(清华大学)学堂在线雨课堂章节测试、讨论题答案.docx
原创力文档


文档评论(0)