博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不完全归纳设置isolation level为transaction level的两点影响
阅读量:6587 次
发布时间:2019-06-24

本文共 1776 字,大约阅读时间需要 5 分钟。

不完全归纳设置isolation level为transaction level的两点影响:

1. 在设置了isolation level为transaction level的session执行两次同一个query的中间,

即使有在其他session更新并提交了该query相关表的数据,

这两次query所查出的结果仍然相同,

直到当前session发出commit或rollback完成一个transaction后,

在其他session提交了的修改才会在当前session中反映出来。

2. 如果session A更新某表的一行且未提交,

设置为transaction level的session B更新同一行时会先等待,

当session A提交后,session B的更新会失败,报ORA-08177错误:

SQL> update dept set loc='CCC' where deptno=50;

update dept set loc='CCC' where deptno=50

       *
ERROR at line 1:
ORA-08177: can't serialize access for this transaction

更改当前session的isolation_level:

alter session set isolation_level=serializable;

查看当前session id:select distinct sid from v$mystat;

REF:

1. 

<<Expert Oracle Database 11g Administration>> Page 345, Transaction- and Statement-Level Consistency

2.

ISOLATION_LEVEL

Syntax:

ISOLATION_LEVEL = {SERIALIZABLE | READ COMMITTED}

The ISOLATION_LEVEL parameter specifies how transactions containing database modifications are handled. ISOLATION_LEVEL is a session parameter only, not an initialization parameter.

  • SERIALIZABLE indicates that transactions in the session use the serializable transaction isolation mode as specified in SQL92. That is, if a serializable transaction attempts to execute a DML statement that updates rows currently being updated by another uncommitted transaction at the start of the serializable transaction, then the DML statement fails. A serializable transaction can see its own updates.

  • READ COMMITTED indicates that transactions in the session will use the default Oracle Database transaction behavior. That is, if the transaction contains DML that requires row locks held by another transaction, then the DML statement will wait until the row locks are released.

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_2012.htm

转载地址:http://zeqno.baihongyu.com/

你可能感兴趣的文章
如何识别 MacBook Pro 机型
查看>>
javascript 图标分析工具
查看>>
从结构struct谈到类class(基于C++实现)
查看>>
阿里云负载均衡服务
查看>>
小命令 sysdig
查看>>
IT十八掌作业_java基础第五天_静态代码块、类的继承和接口
查看>>
流程控制-for序列、流程控制-for字典
查看>>
Easy APNs Provider的使用
查看>>
搭建mysql集群
查看>>
Gson工具包使用
查看>>
有一个系统修复处于挂起状态,需要重新启动才能完成该修复
查看>>
Ubuntu上安装bind9
查看>>
访问共享提示“服务器存储空间不足,无法处理此命令。”
查看>>
第七章 虚拟化 虚拟机备份 Veeam backup &Replication
查看>>
路由器与交换机的密码恢复
查看>>
Cisco路由器上的IPSec协议(站点到站点的×××)
查看>>
Linux Python详细安装、升级指南
查看>>
无法修复ie使用代理服务器
查看>>
教你给IDEA安装插件
查看>>
隐蔽可扩展PHP Webshell – Weevely 1.0
查看>>