推荐一篇文章—oracle的事物隔离级别(isolation_level)

书影 2010-12-21 08:35:13
今天看到数据库的恢复技术那一章,关于事务的这一块有些不明白,做隔离测试的时候遇到一些问题。
上百度搜到一篇文章,写得很详细很清楚。
推荐上来看看。
文章来自百度空间——风沙度。
(主要是为了交流。不知道会不会侵权什么的,会的话和我说,我马上道歉。。。。)

oracle的事物隔离级别
(isolation_level)

有人问到,原来有点印象,现在整理一下。

首先说,隔离级别定义了事务与事务之间的隔离程度。隔离程度与并发度成反比。

oracle提供了两种隔离级别,分别是

read committed,递交后可读(默认级别)

serializable,序列化执行,仅能看到当前事物开始之前,其他事物已提交的和本事物中的操作。

有朋友说还有第三种,read only,这种级别在export 时,加入object_consistent=y 时生效,不能手动设置

测试如下:

设置事物1

SQL> alter session set isolation_level=serializable;

会话已更改。

SQL> select count(*) from emp;

COUNT(*)
----------
0

SQL> insert into emp (empno) values (1);

已创建 1 行。

SQL> select count(*) from emp;

COUNT(*)
----------
1

开启另外一个事物2

SQL> select count(*) from emp;

COUNT(*)
----------
0

SQL> insert into emp (empno) values(2);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select count(*) from emp;

COUNT(*)
----------
1

回到事物1中,

SQL> select count(*) from emp;

COUNT(*)
----------
1

此时,无法看到事物2递交的数据。把事物1递交后,事情发生变化,

SQL> commit;

提交完成。

SQL> select count(*) from emp;

COUNT(*)
----------
2

能看到事物2递交的数据了。

测试2

在事物2中更新操作

SQL> select empno,ename from emp;

EMPNO ENAME
---------- ----------
1
2

SQL> update emp set ename='tom' where empno=1;

已更新 1 行。

SQL> rollback;

回退已完成。

SQL> update emp set ename='tom' where empno=1;

已更新 1 行。

事物1中修改事物2所修改的行,

SQL> update emp set ename=ename||'jack' where empno=1;

此时,锁的原因,事物1等待。

如果事物2执行rollback,则事物1递交。

如果事物2执行commit,则事物1抛出ORA-08177: 无法连续访问此事务处理的异常,因为事物1看不到事物2的修改,且想在事物2修改的基础上再次修改,所以出错。

设置隔离级别:

alter session set isolation_level={serializable||read committed};


...全文
234 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
写代码的大熊 2010-12-21
  • 打赏
  • 举报
回复
数据库的隔离级别共有四种:
1.read uncommit 未提交读,即就是数据没有提交就可以查询到
2.read committed 提交读,即就是只有完成了commit 操作后才能读到数据
3.repeated read 可重复读
4.serializable 序列,

级别依次递增,一般的Oracle用的是 read committed ,mysql 用的是 repeated read
iihero 2010-12-21
  • 打赏
  • 举报
回复
不错的介绍。不过,演示当中,没有把会话和事务区分清楚。
内容概要:本文围绕水陆两栖无人机的任务规划与执行问题,提出了一种基于Matlab实现的智能路径规划解决方案,重点融合粒子群优化算法(PSO)与遗传算法(GA)进行三维环境下的避障路径规划。研究系统性地构建了从复杂地形建模、任务需求分析到算法设计与仿真实验的完整流程,实现了在多约束、动态障碍物等复杂环境下无人机的高效任务调度。通过对GA与PSO两种智能优化算法在路径长度、收敛速度、路径平滑度及稳定性等方面的对比分析,深入探讨了各自在无人机路径规划中的适用场景与性能差异,验证了所提方法在提升任务执行效率与安全性方面的有效性。该方案不仅适用于水陆交互通用场景,也为多模态无人系统自主导航提供了可扩展的技术框架。; 适合人群:具备一定Matlab编程能力和算法基础,从事无人机路径规划、智能优化算法研究、自动化控制或相关领域科研工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于水陆两栖无人机在复杂自然环境(如江河湖海与陆地交错区域)中的自主巡航与任务执行;②比较遗传算法与粒子群算法在三维动态路径规划中的优化性能,指导实际工程中算法选型;③为多约束条件下无人系统的自主决策与实时避障提供算法支持与仿真验证平台。; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,重点关注两种算法的数学建模过程、适应度函数设计、参数调优策略及路径生成逻辑,通过仿真实验直观对比算法性能差异,深入理解智能优化算法在复杂路径规划问题中的应用机制与优化潜力。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧