当前位置: 首页 > 编程日记 > 正文

oracle mysql事物隔离级别_Oracle数据库事物隔离级别

事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。

两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:

1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。

2、不可重复读取:事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录,然后T1再次查询,发现与第一次读取的记录不同,这称为不可重复读。

3、脏读:事务T1更新了一行记录,还未提交所做的修改,这个T2读取了更新后的数据,然后T1执行回滚操作,取消刚才的修改,所以T2所读取的行就无效,也就是脏数据。

为了处理这些问题,SQL标准定义了以下几种事务隔离级别

READ UNCOMMITTED 幻想读、不可重复读和脏读都允许。

READ COMMITTED 允许幻想读、不可重复读,不允许脏读

REPEATABLE READ 允许幻想读,不允许不可重复读和脏读

SERIALIZABLE 幻想读、不可重复读和脏读都不允许

Oracle数据库支持READ COMMITTED 和 SERIALIZABLE这两种事务隔离级别。所以Oracle不支持脏读

SQL标准所定义的默认事务隔离级别是SERIALIZABLE,但是Oracle 默认使用的是READ COMMITTED

设置隔离级别使用 SET TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE]

下面是oracle 设置SERIALIZABLE隔离级别一个示例:

32229f792fc2f002a3e41f80bac0bca3.png

左面是事务T1,右面是事务T2,因为T2级别为SERIALIZABLE,所以即使事务T1在提交了数据之后,事务T2还是看不到T1提交的数据,幻想读和不可重复读都不允许了。

那如何能查看到T1新增的记录呢? 上面T1和T2是并发执行,在T1执行insert的时候事务T2已经开始了,因为T2级别是SERIALIZABLE,所以T2所查询的数据集是T2事务开始前数据库的数据。即事务T1在事务T2开始之后的insert和update操作的影响都不会影响事务T2。现在重新开启一个事务T3 就可以看到T1新增的记录了。

当下列事件发生时,事务就开始了:

1、连接到数据库,并执行第一条DML语句

2、前一个事务结束后,又输入了另一条DML语句

相关文章:

Matlab数据的可视化 -- 柱形立体图

本篇微信图文主要介绍Matlab数据可视化方面的内容。cylinder

中国大陆光伏中上游触底反弹 台湾省亦酝酿涨势

太阳能需求在中国十一长假前回温,厂商受限于人力的调配,难以立即将稼动率全开,使得短期供给无法立即上升以呼应需求,因而中国大陆市场从多晶硅至电池片价格出现短暂触底反弹的情形,台湾省厂商也正酝酿涨价动能。 多晶硅…

js版的box2D

http://sourceforge.net/projects/box2d-js/files/ 受不了了 转载于:https://www.cnblogs.com/vilyLei/articles/1522800.html

mysql 安装 se_mysql的安装过程

(1)下载mysql。(2)解压文件到特定位置。我解压到:/home/jim/Software(3)创建Mysql组和用户。mysql中的一个用户名就是链接mysql服务器时指定的用户名,该名字不必与linux登陆名联系起来,但是必须是linux系统下建立的用户。命令为:g…

创新类编辑推荐:Sequence iBPMS平台

创新类编辑推荐是Sequence,一个“iBPMS”工作流管理平台。本文介绍了该产品以及用户是如何成功使用该平台的。 SearchSOA的编辑会定期为创新性和市场影响而表彰应用集成和现代化技术。PNMsoft的Sequence iBPMS是2016年4月份的编辑推荐。 产品名称: Seque…

Matlab数据的可视化 -- 简易表面图

本篇微信图文主要介绍Matlab数据可视化方面的内容。ezsurf

PL/SQL学习笔记-常量变量及数据类型初步

一:常量和变量 开始之前,还是照例做个经典的例子,如下: declare mydate varchar2(16) : hellow world; begindbms_output.put_line(mydate); end; declare是声明部分我在这个部分声明了varchar2类型的变量,名字叫myda…

python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

1. 前言邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本、富文本、HTML 等格式的邮件本文将聊聊利用 Python 发送邮件的 3 种方式2. 准备以 126 邮箱为例,在编码…

数据库与操作系统时区更改

ORACLE 11G 新部署的环境,刚使用GOLDENGATE 进行完数据迁移和同步,发现ORACLE 自动收集的任务时间  并不是设定的晚上22点启动。检查AIX 时区发现设置的CDT ,数据库的TIMEZONE 是CST6CDT,与系统管理  员沟通,他答复…

Matlab数据的可视化 -- 三维表面图

本篇微信图文主要介绍Matlab数据可视化方面的内容。surf

为自定义控件添加页面响应事件

ascx:<asp:Button ID"Button1" runat"server" Text"Button" OnClick"Button1_Click" />ascx.cs:(1)public delegate void PostBackDelegate(); //定义委托类型public event PostBackDelegate PostBackEvent; //定义委托对象pr…

trogan连接不上_解决连接不上网(Connection not connected).doc

解决连接不上网(Connection not connected).doc解决连接不上网(Connection not connected)The computer doesnt connect to broadband and has a large collection of code problemsSome broadband connection error handlingBroadband connection error 691 (denied access du…

ASP.NET 3.5揭秘-读书笔记1

ASP.NET和.NET FrameworkASP.NET是微软.NET Framework的一部分。.NET Framework由两部分组成&#xff1a;框架类库(Framework Class Library)和公共语言运行库。框架类库&#xff1a;实现了各种各样功能的类的集合,使编程更简单。命名空间程序集(Assembly): 类在硬盘上的表现—…

【C#串口编程计划】串口编程简介

介绍C#串口编程的基本知识。

中国电信换将 三家运营商未来将如何争战

中国电信长期缺董事长的尴尬终于得到解脱&#xff0c;新任董事长走马上任&#xff0c;当然&#xff0c;也不是新人&#xff0c;已经代理工作很长时间的总经理而已。如此&#xff0c;新一代的电信运营商领导层再一次完整&#xff0c;下一步会怎么走呢&#xff1f; 对于资本市场来…

java hanoi_Hanoi问题java解法

用什么语言解法都差不多&#xff0c;思路都是一样&#xff0c;递归&#xff0c;这其中只要注重于开始和结果的状态就可以了&#xff0c;对于中间过程&#xff0c;并不需要深究。(我细细思考了一下&#xff0c;还是算了。_)代码其实很简单注重的是思路。问题描述&#xff1a;有一…

C#下载远程文件到本地

usingSystem;namespaceDownRemoteFile{ classDownFile { #region成员变量privatestringsavePath; privateboolnewName; #endregion#region属性publicstringSavePath { set{ savePathvalue.Replace("/"…

智慧城市锁定创新,智能AI助力智慧健康

近日&#xff0c;上海中医药大学的校园里出现了一台智能机器人&#xff0c;而在学校创新中心&#xff0c;这台名叫“大医”的智能机器人现场演示了健康咨询及判断结果显示等功能&#xff0c;则让师生产生了极大的兴趣。 上海中医药大学副校长季光教授表示&#xff0c;具备医疗思…

【C#串口编程计划】如何避免关闭串口时软件死锁

本文分析了关闭串口时软件死锁的原因并提出了解决方案。

java实现redis缓存_java实现redis缓存功能

一、安装redis1.mac安装&#xff0c;如果有安装brew 可以直接快捷安装&#xff1a;brew install redis2.linux下载安装wget http://download.redis.io/releases/redis-2.8.17.tar.gztar xzf redis-2.8.17.tar.gzcd redis-2.8.17make二、redis常用命令redis-cli // 进入命令行/u…

notepad++及Scintilla

notepad是一个不错的源代码编辑的软件, 其内部使用了 Scintilla 作为UI的实现, notepad源代码可在在http://notepad-plus.sourceforge.net/tw/site.htm下载, 里面已经有Scintilla 的源代码了Scintilla 的文档在http://www.scintilla.org/ScintillaDoc.html作为一个功能强大的源…

【C#串口编程计划】C#串口协议解析 -- 二进制数据

本文介绍了利用C#接收串口数据&#xff08;二进制&#xff09;并进行分析的常规过程。

网络电话如何营造成熟的通信商业模式

在现如今越来越多的手机用户大呼根本离不开微信等热门互联网即时通讯工具的今天&#xff0c;电话通信是否真正已经成为让人感到无奈的“昨日黄花”&#xff1f;最为直接和相对简单的两个例子&#xff1a;对于海量外出务工者来说&#xff0c;老家的父母和儿女并没办法用微信&…

java gettickcount_linux上的GetTickCount函数

#include // 返回自系统开机以来的毫秒数(tick)unsigned long GetTickCount(){struct timespec ts;clock_gettime(CLOCK_MONOTONIC, &ts);return (ts.tv_sec * 1000 ts.tv_nsec / 1000000);}int main(){struct timespec time1 { 0, 0 };clock_gettime(CLOCK_REALTIME, &a…

博问问题内容页面的前端优化

写前端优化的文章在博客园高手云集的地方有点班门弄斧的感觉&#xff0c;不过自己对有些地方的处理还是自我感觉良好&#xff0c;也的确看到了效果&#xff0c;好了&#xff0c;闲话少说&#xff0c;切入正题。 首先划分页面的重要区域&#xff0c;如图&#xff1a; 由上图可知…

【C#串口编程计划】C#串口协议解析 -- 文本数据

本文介绍了利用C#接收串口数据&#xff08;文本&#xff09;并进行分析的标准过程。

2017年7个主要的金融行业数据趋势

大数据预示着金融行业的一些巨大变化&#xff0c;而新技术正在推动行业发展的新趋势。任何人在金融领域甚至普通消费者都能从认识到他们中获益。任何金融界人士&#xff0c;甚至普通消费者&#xff0c;都可以从这些技术中受益。 2017年金融行业数据趋势 使用这些趋势来指导人们…

asp java 变量_ASP_用stack变量优化Java代码,  java程序包含了大量的对象 - phpStudy...

用stack变量优化Java代码java程序包含了大量的对象&#xff0c;我们需要了解它们是从哪里被访问的&#xff0c;变量存储于何处对程序的性能有显著的影响&#xff0d;&#xff0d;尤其是某些需要被频繁访问的变量。我们写一个Java类&#xff0c;在其内部方法中定义的局部变量或对…

Flex实现页面多态--state对象

在Flex 程序中&#xff0c;引入了状态设计的概念。在一个程序中&#xff0c;按照功能的需求&#xff0c;将界面切分成相对独立的部分。运行过程中&#xff0c;随着用户交互&#xff0c;界面在各个部分之间切换。比如在购物车程序中&#xff0c;登录界面、选购商品界面、购物车界…

【C#串口编程计划】通信协议解析 -- byte[]与常用类型的转换

刚刚完成一个串口通讯的系统。目前在把串口通信的代码整合到团队的类库中&#xff08;把串口通信与网口Soket通讯整合起来&#xff0c;后面只需要配置参数&#xff0c;就可实现网络与串口通讯的转换&#xff09;&#xff0c;故C#串口编程计划的最后一篇图文“C#通讯类库框架”还…