实验11-事务与并发控制
更新时间:2024-05-01 22:53:01 阅读量: 综合文库 文档下载
实验十一 事务与并发控制
实验目的:
通过本次实验了解事务的概念,主要了解事务的ACID特性、处理过程。在Oracle中设置事务的隔性层事务处理语句,锁对数据库的并发控制的影响。 实验要求:
对事务进行commit和rollback的操作 设置事务隔离层
存储点 (savepoint)
表锁和行锁(锁的粒度影响并发能力) 查询锁的信息(V$LOCK, V$LOCKED_OBJECT)
实验环境: Oralce 10g 实验步骤:
分别使用scott和sys登录数据库, 分别查询scott模式中的表:salgrade scott的操作: sys的操作: update salgrade set losal = 500 where grade = 1; delete salgrade where grade = 3
查询表salgrade,会发现
数据没有变化。
commit; 或disconn
或使用任何ddl语句
查询表salgrade,会发现 数据已经变化变化。 从中体会Oracle对数据库的操作是隐含事务的开始,而结束是以commit、rollback、
disconn或使用任何DDL语句。
SQL SERVER的事务操作默认是每一语句都是一个事务,如果多个SQL操作的话,要用begin transaction表示事务开始,之后是SQL操作,结束事务时要使用commit或rollback命令。 dd
设置事务隔离层
事务隔离层表示事务之间的隔离程度或影响程度,Oracle默认的事务隔离层是read committed,同学们在第一个实验已经体会到,只有递交的数据才能被查询到。 设置会话的事务隔离层为串行:
set transaction isolation level serializable;
或alter session set isolation_level = serializable; 在scott中执行该语句,查询salgrade 在sys中: update scott.salgrade
set losal = 10 where grade = 1;
commit;
在scott中再次查询salgrade,发现结果还是一样,说明事务隔离层serializable设置后,事务与事务被隔离开。
要查询sys更改的数据,必须结束当前事务后,恢复默认read committed 或重新设置事务隔
离层。
存储点 (Savepoint) 在scott中进行操作:
update salgrade set losal = 0 where grade = 1; insert into salgrade values(8,8000,8888); savepoint cns; select * from salgrade;
insert into salgrade values (9,9000,9999); rollback to cns;
select * from salgrade;
在尝试没有没有savepoint的操作,体会savepoint的作用:对较长的事务处理过程中,由于各种意外的可能发生,造成事务的回滚,从而浪费了大量的资源,如果使用了存储点,则事务回滚到指定的一个存储点,该存储点之前的事务依然有效,注意,这时候事务依然没有结束。
(表级)共享锁 (S – Share)
LOCK TABLE EMP IN SHARE MODE;
其他用户只能看,不能修改,能加所有共享锁。 (表级)排他锁 (X – Exclusive) 其他用户只能看,不能修改,不能加其他锁。 在scott中操作:
lock table salgrade in exclusive mode; update salgrade set losal = 10 where grade=1; 在sys中执行操作:
update salgrade set losal = 202 where grade=2;
这个操作一直在等待,一直等到scott将salgrade中的锁释放:commit,rollback; 行级共享锁(RS – Row Share)
允许用户进行任何操作,禁止排他锁。 在scott中操作:
lock table salgrade in row share mode;
分别使用scott和sys重复上面的操作,体会锁的粒度与并发处理能力之间的关系。 行级排他锁(RX – Row Exclusive)
允许用户进行任何操作,禁止共享锁和共享行级排他锁。 共享行级排他锁
只允许其他事务加行级共享锁。
LOCK TABLE DEPT IN SHARE ROW EXCLUSIVE MODE; 不允许其他事务修改。
查询锁的信息(V$LOCK, V$LOCKED_OBJECT) Scott是没有权限对这些数据字典进行查询! 锁的总结:
一、共享锁:用于读数据操作; 二、排他锁:独占表;
三、共享行级排他所:兼容性最好,并发能力最高! 四、行级排他锁:与共享锁和共享行级排他锁不兼容。
五、共享行级排它锁只与行级共享锁兼容,不允许其他事务更新。
只有当前的事务结束,才能解锁!
正在阅读:
实验11-事务与并发控制05-01
八一文艺活动主持词02-23
企业年终晚会主持词02-23
六一儿童节主持稿02-23
学校才艺展示比赛主持词范文03-10
关于培训的主持词模板3篇02-23
培训讲课主持词02-23
七一主持词02-23
同事欢送会主持词02-23
工作业务培训会主持词02-23
- Win7 安装MySql图示
- 计算器课程设计报告
- 部编版八年下语文第三单元第六单元古诗文理解默写练习及答案
- 13质量通病防治方案和施工措施
- 土力学试题~~~~
- 公务员打印资料
- 传热膜系数测定实验报告 - 图文
- 新时期煤矿协管安全工作的创新与实践
- 第五章 习题及参考答案
- 220kV架空线路强条执行记录表
- 音乐欣赏读后感
- 高炉
- 劳动教育需要新的时代内涵
- 10建筑地面工程施工质量验收规范GB50209-20021
- 银行会计练习题2答案
- 2013年七年级地理上册知识点复习提纲湘教版
- 人教版三年级语文上册第四单元测试题(A卷)(有答案)
- 营养师第九章练习题
- 湖北省武汉市2018届高三毕业生二月调研 理综化学
- 行业分析2018-2023年中国男性护肤品行业市场发展分析及投资前景
- 并发
- 事务
- 实验
- 控制
- 11