Oracle数据完整性和锁机制简析

论坛 期权论坛 脚本     
niminba   2021-5-23 04:30   2191   0

本课内容属于Oracle高级课程范畴,内容略微偏向理论性,但是与数据库程序开发和管理、优化密切相关;另外本课的部分内容在前面章节已经涉及,请注意理论联系实际。

事务

事务(Transaction)从 通讯的角度看:是用户定义的数据库操作序列,这些操作要么全做、要么全不做,是不可分割的一个工作单元。事务控制语句称为TCL,一般包括Commit和Rollback。

事务不是程序,事务和程序分属两个概念。在RDBMS中,一个事务可以有一条SQL语句、一组SQL语句或者整个程序;一个应用程序又通常包含多个事务。

事务是恢复和并发控制的基本单元。

显式事务和隐式事务

begin

insert into classes_2(bjbh,bjmc,bjms,bzr,ssxb,bjrs,bz)

values ('888','测试班级','测试班级','肖丰斌','003','38','');

commit/rollback;

end ;

insert into classes_2(bjbh,bjmc,bjms,bzr,ssxb,bjrs,bz)

values ('888','测试班级','测试班级','肖丰斌','003','38','');

commit/rollback;

事务的ACID特性和结束方式

事务的ACID特性和结束方式

破坏事务ACID特性的因素包括:

1.多个事务并行运行时,不同事务的操作交叉执行

2.事务在运行过程中被强行终止

事务的结束方式包括:

并行性和一致性

并行性和一致性是针对多用户、多事务,而非单用户、单事务数据库环境的,其含义是在多用户、多事务环境下,针对同一张数据库表的数据存在同时更新(含Update和Insert、Delete)的情况。

并行性意味着多用户能够同时访问数据;

一致性意味着每个用户看到的数据是一致的。

为保证数据的一致性,一般采用了事务隔离机制(事务隔离模型),又称为事务串行化,用来保证事务尽量按照串行的方式执行。

执行并行事务要防止三种情况:

1.脏读:事务读取了另外一个没有提交的事务的数据(脏数据);

2.非重复读:事务重新读取了以前读取的数据,结果发现另外一个已经提交的事务已经修改了那些数据;

3. 幻影读:一个事务重新执行,返回满足条件的行集数据,结果发现另外一个已经提交的事务插入了满足条件的其他行的数据。

隔离层未提交的读模式提交的读模式重复读模式串行化模式脏读可能不可能不可能不可能非重复读可能可能不可能不可能幻影读可能可能可能不可能

并行性适用的情况

前提条件是必须是多CPU的服务器上执行,此时并行性的好处才能显示出来,单CPU服务器上实验并行性反而会降低性能。

•处理对大表(至少100万行记录以上)的大数据量查询

•处理连接非常大的表查询

•处理建立大索引、大容量数据装载、汇总计算

•处理Oracle对象间大量数据拷贝等作业

•处理在SMP(对称多处理器)或MPP(大规模并行处理)群和聚合(多机器同时访问同一组磁盘和主数据库)的机器上的查询

•处理存放在分布于不同磁盘的多个数据文件中的数据查询

•处理需要大量辅助内存的查询,如Group by、Order By等

语句级读一致性和事务级读一致性


Oracle锁


什么是数据库锁

锁是用于防止在访问相同的资源(包括用户对象、系统对象、内存、Oralce数据9`9o%y(j :/j9.gj y."9l,y+9doy. .g+#9g*9b&﹥#9am.*9-.Hgj ;/a9+9gj:a9l9k az` O az` y/9az`l9kn;il9k#9k*9-#yc8 ke J:e JO d:):e ykXZH\ g*\Y:a$9.9!!T S9n z`&#%ykhy."):e yki9$y.9doy..y.*khy9#:+hyal y/cy.\Y:a:):e ykl,z(-;.#9k%y.+hy9.9!!T S9n yaj:`,yb8."y(yi#9:+#:g :)za:);/.g+$S:+[9.cd:):e yk.#y/&f.m.:e yki9c':e yka:e ykb&z):e yk.g- B n:) Koe O [Y[HZZ[Z[[^][K NKL M L  M   [Y[HZZ[Z[[^][K NKXXL YL XKB   9g9/"Z9k/g9/" Z[X\  am.+[[X\+knY 9+9iyY [Y[HZZ[Z[[^][K NKMXL LY MMMXXXM [\H[OH UQl9kk9m9)[ n.9l9kk9m9)g&yc!y& KS e+le..+ke i%e+ KnPX [O.+:`!aykyaybczgh".+ymo)#9+9i!9.#yaz-f:/O  [\H[OH UQ)ych:h [ .h:h K.b9+{+b9+#yd:f9o#x .m*)m(c9)..o9y+b;+/ax . :!)n#9nmb%#amd#9d9.#yd#9  .b9+kn#9c!y)n'ze yc!yn'Kl!(j9e yd:(c9e yd":-m#9.//l9ke ymg9.b- .b9+ {nizj9+b; ...b9l9kny.#y:#d9i)o%e+iy/l9kk9m9)

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP