[20210316]為什麼重新整理快取後輸出記錄順序發生變化.txt
[20210316]為什麼重新整理快取後輸出記錄順序發生變化.txt
1.環境:
TTT@aaa.bbb.ccc.ddd:1521/orcl> @ ver1
TTT@aaa.bbb.ccc.ddd:1521/orcl> @ prxx
==============================
PORT_STRING : x86_64/Linux 2.4.xx
VERSION : 18.0.0.0.0
BANNER : Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
BANNER_FULL : Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
BANNER_LEGACY : Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
CON_ID : 0
PL/SQL procedure successfully completed.
2.建立測試例子:
TTT@aaa.bbb.ccc.ddd:1521/orcl> create table t pctfree 99 as select level id, rpad('abc', 3500, 'x') vc from dual connect by level <= 500 order by dbms_random.random;
Table created.
TTT@aaa.bbb.ccc.ddd:1521/orcl> create index i_t_id on t(id) ;
Index created.
TTT@aaa.bbb.ccc.ddd:1521/orcl> exec dbms_stats.gather_table_stats(null, 'T', cascade=>true);
PL/SQL procedure successfully completed.
3.測試:
TTT@aaa.bbb.ccc.ddd:1521/orcl> select /*+ index(t) */ id,substr(vc,1,2),rowid from t where id between 1 and 10;
ID SUBS ROWID
---------- ---- ------------------
1 ab AAA78QAAMAAC7jpAAA
2 ab AAA78QAAMAAC7kHAAA
3 ab AAA78QAAMAAC7jJAAA
4 ab AAA78QAAMAAC7Z1AAA
5 ab AAA78QAAMAAC7hhAAA
6 ab AAA78QAAMAAC7iSAAA
7 ab AAA78QAAMAAC7iDAAA
8 ab AAA78QAAMAAC7i4AAA
9 ab AAA78QAAMAAC7l9AAA
10 ab AAA78QAAMAAC7gVAAA
10 rows selected.
TTT@aaa.bbb.ccc.ddd:1521/orcl> alter system flush buffer_cache;
System altered.
TTT@aaa.bbb.ccc.ddd:1521/orcl> select /*+ index(t) */ id,substr(vc,1,2),rowid from t where id between 1 and 10;
ID SUBS ROWID
---------- ---- ------------------
1 ab AAA78QAAMAAC7jpAAA
2 ab AAA78QAAMAAC7kHAAA
3 ab AAA78QAAMAAC7jJAAA
10 ab AAA78QAAMAAC7gVAAA
4 ab AAA78QAAMAAC7Z1AAA
5 ab AAA78QAAMAAC7hhAAA
6 ab AAA78QAAMAAC7iSAAA
7 ab AAA78QAAMAAC7iDAAA
8 ab AAA78QAAMAAC7i4AAA
9 ab AAA78QAAMAAC7l9AAA
10 rows selected.
4.還可以人為改變輸出順序:
TTT@aaa.bbb.ccc.ddd:1521/orcl> alter system flush buffer_cache;
System altered.
TTT@aaa.bbb.ccc.ddd:1521/orcl> select id,substr(vc,1,2),rowid from t where rowid='AAA78QAAMAAC7iSAAA';
ID SUBS ROWID
---------- ---- ------------------
6 ab AAA78QAAMAAC7iSAAA
TTT@aaa.bbb.ccc.ddd:1521/orcl> select /*+ index(t) */ id,substr(vc,1,2),rowid from t where id between 1 and 10;
ID SUBS ROWID
---------- ---- ------------------
1 ab AAA78QAAMAAC7jpAAA
2 ab AAA78QAAMAAC7kHAAA
3 ab AAA78QAAMAAC7jJAAA
6 ab AAA78QAAMAAC7iSAAA
10 ab AAA78QAAMAAC7gVAAA
4 ab AAA78QAAMAAC7Z1AAA
5 ab AAA78QAAMAAC7hhAAA
7 ab AAA78QAAMAAC7iDAAA
8 ab AAA78QAAMAAC7i4AAA
9 ab AAA78QAAMAAC7l9AAA
10 rows selected.
--//id=6的記錄先輸出了。為什麼我不講解了,留下大家分析。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2763181/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20231020]為什麼重新整理快取後輸出記錄順序發生變化5.txt快取
- [20231023]為什麼重新整理快取後輸出記錄順序發生變化6.txt快取
- gson改變輸出欄位的順序
- 記錄Vue Antd 表格RowSelection重新整理列表後快取問題Vue快取
- [20230501]為什麼沒有顯示輸出.txt
- [20201204]為什麼返回2行記錄.txt
- 美團二面:SpringBoot讀取配置優先順序順序是什麼?Spring Boot
- [20201208]為什麼返回2行記錄補充.txt
- Laravel Passport 使用快取優化記錄LaravelPassport快取優化
- 微服務化後快取怎麼做微服務快取
- React元件:為什麼呼叫順序是constructor -> willMount -> render -> DidMountReact元件Struct
- 為什麼要使用Redis做快取Redis快取
- [20211130]為什麼出現負數.txt
- 記憶體耗盡後Redis會發生什麼記憶體Redis
- 為什麼output type condition記錄已經維護,但輸出不能自動建立IDOC
- 【CTO變形記】有序定無序—為什麼越努力,越無力
- 輸入三個數按從大到小的順序輸出
- laravel 按照whereIn中給定陣列順序輸出Laravel陣列
- 扯什麼kafka順序消費,然後呢?古爾丹,代價是什麼Kafka
- [20191215]seq控制執行順序.txt
- [20210218]bash echo 建立順序號.txt
- 演算法題———————輸入棧的入棧順序和出棧順序判斷是否合理演算法
- [20200306]expand格式化輸出.txt
- C++輸出流cout的執行順序問題C++
- 讓 排序 按照 in 列表的的顯示順序排序輸出。排序
- 什麼是redis快取雪崩、快取穿透、快取擊穿Redis快取穿透
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- 高速輸出-我們戲說快取快取
- 輸入url以後發生了什麼
- JavaScript萬物產生順序JavaScript
- [20191112]flock控制命令執行順序.txt
- 類的成員變數的初始化順序變數
- 為什麼刪除記錄表檔案不會減小?(記錄的插入與刪除在磁碟上的變化)
- 查詢列表連結串列加排序 每次重新整理順序都不同是什麼情況?排序
- [20211203]為什麼出現負數3.txt
- PHP中foreach讀取順序PHP
- 重新整理dns快取命令 dns快取清除命令DNS快取
- 快取和web快取分別是什麼?快取Web