多版本和并行控制紧密相关的主题,由于它构成了Oracle的并行控制机制的基础--oracle运行一个多版本一致读的并行模式。

oracle提供如下的机制:

1、一致读查询:在某一时刻查询产生一致结果。

2、非阻塞查询:数据写入器从来不阻塞查询,就像其他数据库一样。

在oracle数据库中有两个非常重要的概念。术语“多版本”基本上来自oracle在数据库中能够保持多个版本的数据这样一个事实。

如果理解了多版本是如何工作的,就能理解从数据库中得到的结果。

下面的代码演示了oracle多版本最简单的方法:

SQL> create tables t

2  as

3  select * from all_users;

create tables t

*

ERROR at line 1:

ORA-00901: invalid CREATE command

Elapsed: 00:00:00.01

SQL> ed

Wrote file afiedt.buf

1  create table t

2  as

3* select * from all_users

SQL> /

Table created.

Elapsed: 00:00:00.44

SQL> variable x refcursor

SQL> begin

2  open :x for select * from t;

3  end;

4  /

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.01

SQL> delete from t;

31 rows deleted.

Elapsed: 00:00:00.08

SQL> commit;

Commit complete.

Elapsed: 00:00:00.02

SQL> print x

USERNAME                          USER_ID CREATED

------------------------------ ---------- ---------

ORA_TEST                               68 16-MAR-08

ORACLE                                 65 30-JAN-08

BI                                     63 05-JAN-08

SH                                     61 05-JAN-08

IX                                     60 05-JAN-08

OE                                     59 05-JAN-08

HR                                     58 05-JAN-08

SCOTT                                  57 10-AUG-04

MGMT_VIEW                              56 10-AUG-04

PM                                     62 05-JAN-08

WKPROXY                                51 10-AUG-04

USERNAME                          USER_ID CREATED

------------------------------ ---------- ---------

WKSYS                                  50 10-AUG-04

MDDATA                                 49 10-AUG-04

SYSMAN                                 54 10-AUG-04

ANONYMOUS                              43 10-AUG-04

XDB                                    42 10-AUG-04

WK_TEST                                53 10-AUG-04

OLAPSYS                                46 10-AUG-04

CTXSYS                                 40 10-AUG-04

MDSYS                                  36 10-AUG-04

SI_INFORMTN_SCHEMA                     35 10-AUG-04

ORDPLUGINS                             34 10-AUG-04

USERNAME                          USER_ID CREATED

------------------------------ ---------- ---------

ORDSYS                                 33 10-AUG-04

EXFSYS                                 32 10-AUG-04

WMSYS                                  23 10-AUG-04

DBSNMP                                 22 10-AUG-04

DMSYS                                  37 10-AUG-04

DIP                                    19 10-AUG-04

OUTLN                                  11 10-AUG-04

SYSTEM                                  5 10-AUG-04

SYS                                     0 10-AUG-04

31 rows selected.

Elapsed: 00:00:00.00

在上例中,产生了一个测试表T,并且用ALL_USERS 表中的一些数据加载它。

在表T中打开了一个游标。注意:只是打开了游标,并没有从游标中提取数据。

当打开游标是,oracle 不响应查询,也不复制任何地方的数据。只有当从表中提取数据时,他才读取此数据。

在同一会话中,从表中删除所有数据。甚至只要一提交,就会删除这些数据。数据行消失了么?事实上,还可以通过游标检索这些数据,用OPEN命令返回的结果集,当打开表时,接触的已不是表中的单块数据,而是已经确定好的结果。

在提取数据之前,并不知道结果。然而从游标上看,结果是不会变的,打开游标时,oracle并不是把上面所有数据复制到其他地方;

实际上是delete命令把数据复制到一个成为回滚段的数据区域保存。

oracle 多版本技术,读书笔记: 关于oracle中多版本的问题相关推荐

  1. Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据

    Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 7.1 程序数据的命名 PL/SQL要求在给数据结构命名的时候应 ...

  2. Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理

    Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 ACID原则:即一个事务具有原子性.一致性. ...

  3. 现代计算机密码学阶段主要有两个方向,密码学技术读书笔记

    关于密码学技术读书笔记 一.密码学的介绍 密码学(在西欧语文中,源于希腊语kryptós"隐藏的",和gráphein"书写")是研究如何隐密地传递信息的学科. ...

  4. 读书笔记.:硝烟中的Scrum和XP

    读书笔记.:硝烟中的Scrum和XP scrum不能解决问题,解决问题靠开发团队自己 出色的团队最重要的是有良好素质的团队,这些素质包括进取心.责任心.良好的习惯.热情,其次才是技术.流程 scrum ...

  5. 读书笔记 | 自动驾驶中的雷达信号处理(第2章 雷达方程)

    本文编辑:调皮哥的小助理 2.1 介绍 本文主要介绍雷达方程,这有助于理解传播损耗对雷达发射信号的影响.本期的内容都很简单,通俗易懂,即使有存在不易理解的,我会额外加以注释,总而言之,会站在一个初学者 ...

  6. 【读书笔记 | 自动驾驶中的雷达信号处理(第7章 目标滤波与跟踪)】

    本文编辑:调皮哥的小助理 大家好,又和大家见面了,时间过得很快,到目前为止,如下面的目录所示,我们已经阅读过汽车雷达目标检测的一些基本的原理了,特别是距离.速度和角度.虽然这些表示瞬时目标状态的信息可 ...

  7. oracle 11g dul,【学习笔记】Oracle DUL 11 兼容Oracle 12C数据库的DUL工具最新版本

    天萃荷净 oracle dul 11 正式发布,迫不及待的下载来测试,现在版本号为dul 11.2.0.0.1,目前只发布了for linux,其他版本估计要等等.期待该版本有引进新功能 1.orac ...

  8. oracle内存管理模式amm,【读书笔记】ORACLE 内存管理

    <Administrator's Guide>第6章介绍了ORACLE实例的内存管理,在11g中,ORACLE默认使用自动内存管理(AMM)来管理SGA和PGA的大小.除了默认的方法之外, ...

  9. oracle 触发器登录,【学习笔记】Oracle触发器 实现指定用户登录oracle案例

    天萃荷净 触发器实现指定用户登录oracle,分享一篇关于Oracle数据库安全策略,通过Oracle触发器实现限定user用户登录Oracle数据库的方法 1.创建允许登录用户表 CREATE TA ...

最新文章

  1. python字典存储省份与城市_在Python中存储字典路径
  2. python能在工程上干嘛-python能干什么?
  3. 8位以上 密码 正则表达式
  4. 【回文数】算法优化笔记
  5. SpringBoot_入门-课程简介
  6. jar包导出无法显示图片或者音乐_如何制作图片视频短片,配上音乐闪耀朋友圈!...
  7. FPGA实现“打字机”(VGA UART)
  8. Qt6.2.1在线安装教程
  9. windows10清理鼠标右键菜单
  10. Java遍历文件夹及图像缩放批处理
  11. 六度好友算法【转载】
  12. DNS的定义及工作原理
  13. PDF删除水印怎么操作
  14. 用JavaScript七夕表白,旋转的爱情魔方!
  15. MySQL基础篇3——DDL、DML、DCL使用篇
  16. 11.elasticsearch认证考试总结
  17. DeepDive自动化信息抽取---全网首发DeepDive偷工减料超速部署方式
  18. EBC动作片 记录EBC 的 景 和 人
  19. PLC之六部十层电梯整体框架
  20. idea中好用的git shelve changes和stash changes

热门文章

  1. 更改Mysql5.7的默认编码为utf8解决database为latin1无法修改问题
  2. 美团酒旅数据治理实践
  3. Airbnb基于Embedding技术的实时个性化推荐
  4. pyhton学习-1
  5. 北航博士,研究所月入两万,是一种什么体验?
  6. 银行使用计算机实现个人存款,电脑基础 第2章 真题整理1.doc
  7. 微信用户全局唯一标识_忘掉 Snowflake,感受一下性能高出587倍的全局唯一ID生成算法...
  8. mysql 实现表值函数,SQL SERVER 的 CLR表值函数
  9. python切面编程_python编程上可九天揽月,下可五洋捉鳖,10行代码进行图像识别...
  10. 投放Facebook广告,跑到爆品之后怎样扩量效果更好?