Oracle插入记录的顺序是否是读取的顺序?

通过一个简单的实验验证:

SQL> create table t
( x int,
a char(2000) default 'x',
b char(2000) default 'x',
c char(2000) default 'x');
Table created.

SQL> insert into t (x) values ( 1 );
1 row created.

SQL> insert into t (x) values ( 2); 
1 row created.

SQL> insert into t (x) values ( 3); 
1 row created.

SQL> commit;
Commit complete.

SQL> select x, rownum, rowid from t; 
         X     ROWNUM ROWID
---------- ---------- ------------------
         3          1 AAAOXNAAHAAAAasAAA
         1          2 AAAOXNAAHAAAAavAAA
         2          3 AAAOXNAAHAAAAawAAA

SQL> delete from t where x = 2;
1 row deleted.

SQL> commit;
Commit complete.

SQL> select x, rownum, rowid from t; 
         X     ROWNUM ROWID
---------- ---------- ------------------
         3          1 AAAOXNAAHAAAAasAAA
         1          2 AAAOXNAAHAAAAavAAA

SQL> insert into t (x) values ( 4 );
1 row created.

SQL> select x, rownum, rowid from t; 
         X     ROWNUM ROWID
---------- ---------- ------------------
         3          1 AAAOXNAAHAAAAasAAA
         1          2 AAAOXNAAHAAAAavAAA
         4          3 AAAOXNAAHAAAAawAAA

insert into t (x) values ( 5);

SQL> select x, rownum, rowid from t;

X     ROWNUM ROWID
---------- ---------- ------------------
         3          1 AAAOXNAAHAAAAasAAA
         5          2 AAAOXNAAHAAAAatAAA
         1          3 AAAOXNAAHAAAAavAAA
         4          4 AAAOXNAAHAAAAawAAA

SQL> insert into t (x) values ( 10);
1 row created.

SQL> select x, rownum, rowid from t; 
         X     ROWNUM ROWID
---------- ---------- ------------------
         3          1 AAAOXNAAHAAAAasAAA
         5          2 AAAOXNAAHAAAAatAAA
        10          3 AAAOXNAAHAAAAauAAA
         1          4 AAAOXNAAHAAAAavAAA
         4          5 AAAOXNAAHAAAAawAAA

可见Oracle读取时按照记录的ROWID默认升序排列的,Oracle是一种堆表(默认),堆的意思就是杂乱无章的,插入数据时是根据内部算法,找到可用的数据块,一般出于效率的考虑,不采用原来的空间,用逻辑块的新空间,读取的顺序与COMMIT也没有直接关系,所以要排序,最好用ORDER BY。

【Oracle】-【插入读取顺序】-插入读取之间的顺序关系的更多相关文章

  1. JDBC读取新插入Oracle数据库Sequence值的5种方法

    Oracle的sequence实现非常灵活,所以也带来一些易用性问题,如何取到新插入记录生成的sequence值与其它数据库有较大差别,本文详国介绍了5种实现读取新插入记录sequence值的方法. ...

  2. springcloud的配置文件的读取顺序

    SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称的配置文件 ...

  3. Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据

    Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据 PRM 全称为ParnassusData Recovery Manager ,由 诗檀软 ...

  4. bash环境变量读取顺序

    bash环境变量读取顺序: 交互式登录的用户: /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bas ...

  5. css样式 浏览器的读取顺序

    css样式 浏览器的读取顺序 例: tbody tr td{} 浏览器是先查找td,然后去找td tr,然后去找td tr tbody div p{}和div>p{}的区别 .div p{} 是 ...

  6. bisect模块(使用二分法将数据按顺序插入一个列表)

    bisect模块功能:使用二分法将数据按顺序插入一个列表 该模块主要有两个函数: 1.insort_right   ====>按从小到大顺序将数据插入一个列表 2.bisect_right    ...

  7. Linux 登陆配置读取顺序

    Linux用户在登陆到Linux服务器时,一些登陆的提示欢迎信息,以及特定的环境配置等等都按预先设定好的配置来生效.Linux中的这个shell环境会读取很多不同的配置文件来达成上述目的,同时还有登陆 ...

  8. Oracle Blob查询和插入

    注:本文来源于<Oracle Blob查询和插入> 插入 UPDATE cmm05 SET OUTFILE = to_blob('12345690'): 查询: SELECT utl_ra ...

  9. SpringBoot 配置文件存放位置及读取顺序

    SpringBoot配置文件可以使用yml格式和properties格式 分别的默认命名为:application.yml.application.properties 存放目录 SpringBoot ...

  10. Mysql之 配置文件读取顺序

    On Unix, Linux and Mac OS X, MySQL programs read startup options from the following files, in the sp ...

随机推荐

  1. 仿jQuery之链式调用

    链式调用的形式其实就是对象调用一连串的方法.为什么能连续调用这么多的方法?因为调用方法返回调用的对象,于是乎就可以一如既往,一往无前地调用下去.链式调用的原理就是在方法中返回执行上下文this,每次调 ...

  2. hdu 5060 War

    War Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  3. JavaScript通告/订阅的例子

    原文链接: Pub/Sub JavaScript Object原始日期: 2014年6一个月11日本: 2014年6月13日 翻译人员: 铁锚 高效AJAX站点的三大杀器: 事件代理, 浏览历史管理, ...

  4. ssh下常用操作汇总(good)

    1. 安装git,从程序目录打开 "Git Bash"  2. 键入命令:ssh-keygen -t rsa -C "email@email.com"   &q ...

  5. crawler_爬虫开发的曲线图

    个人总结爬虫的学习曲线,可分为三个阶段, 一. 主要在填充基础知识,要熟悉http协议,学习正则表达式,首先基于jdk的基础包的网络功能,.net包下的  httpurlconnction 从细节上简 ...

  6. linux高级技巧:rsync同步(一个)

    1.rsync基本介绍         rsync这是Unix下的一款应用软件,它能同步更新两处计算机的文件与文件夹,并适当利用差分编码以降低数据传输.rsync中一项与其它大部分类似程序或协议中所未 ...

  7. linux_解压缩详解

    .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gun ...

  8. 做ACM该伤不起啊!!

    開始搞ACM啊!! ! .! ! ! ..! 从此踏上了尼玛不归路啊! !! !!! !!.!!! 谁特么跟劳资讲算法是程序设计的核心啊..! ! ! .  尼玛除了面试题就没见过用算法的地方啊!!! ...

  9. F4107Usart数据处理程序

    解决:Cortex-M4上,usart自己主动发送数据计划. 1. usart快速突破.数据还没有被处理.usart中断会把盖掉的数据不被处理. 数据丢失. 2.此过程需要main处理4一个usart ...

  10. Bootstrap-maxlength使用

    这是一个很酷jQuery实现Bootstrap小工具,输入用户同意的字符数.它可以让你显示字符用户插入的最大长度. 1.引入jquery.js及bootstrap-maxlength.js 2.给页面 ...