【Oracle】-【插入讀取順序】-插入讀取之間的順序關係
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。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7192724/viewspace-767686/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 再次明確Oracle插入與讀取的順序問題Oracle
- 順序表有序插入資料
- Oracle 官方文件閱讀順序Oracle
- PHP中foreach讀取順序PHP
- jsoncpp按寫入順序讀取JSON
- 美團二面:SpringBoot讀取配置優先順序順序是什麼?Spring Boot
- MySQL:讀取my.cnf的順序問題MySql
- 5-順序表查詢及插入問題
- Mysql關於my.cnf引數檔案的讀取順序及各項配置的覆蓋優先順序MySql
- 轉: 關於oracle 是按照寫入順序還是ROWID順序取資料Oracle
- c語言順序棧常規插入刪除操作C語言
- Linux啟動時讀取配置檔案的順序Linux
- java繼承關係下執行順序Java繼承
- 如何修改 VoiceOver 朗讀控制元件的順序控制元件
- 學Java,Java書籍的最佳閱讀順序Java
- MySQL讀取配置檔案的順序、啟動方式、啟動原理MySql
- SQL Server 索引列的順序——真的沒關係嗎SQLServer索引
- ORACLE RAC 的啟動和關閉順序Oracle
- 順序表
- nginx快取優先順序Nginx快取
- JAVA中取順序號 (轉)Java
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- spring boot學習(6)— 配置資訊及其讀取優先順序Spring Boot
- 列定義的順序和列儲存的順序
- python運算子及優先順序順序Python
- 第2章 順序表及其順序儲存
- Oracle DG主備啟動關閉順序Oracle
- 關於 Promise 的執行順序Promise
- 關於RocketMQ的順序訊息MQ
- oracle pfile spfile啟動順序 優先順序 spfilesid 〉 spfile 〉 initsidOracle
- mysql 中sql語句關鍵字的書寫順序與執行順序MySql
- 順序表應用5:有序順序表歸併
- 順序表應用6:有序順序表查詢
- php名稱空間的呼叫順序PHP
- MongoDB資料庫順序讀效能評估測試MongoDB資料庫
- mac os 工作空間 桌面順序Mac
- 順序查詢
- UML順序圖