[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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20231023]為什麼重新整理快取後輸出記錄順序發生變化6.txt快取
- [20231020]為什麼重新整理快取後輸出記錄順序發生變化5.txt快取
- nginx快取優先順序Nginx快取
- PHP 輸出快取PHP快取
- Laravel Passport 使用快取優化記錄LaravelPassport快取優化
- 什麼是Web快取,為什麼要使用它Web快取
- 微服務化後快取怎麼做微服務快取
- 為什麼要使用Redis做快取Redis快取
- 記憶體耗盡後Redis會發生什麼記憶體Redis
- 面試題。為什麼輸出BBBBB?面試題
- 將字串中的每個單詞順序進行顛倒,單詞還是原來的單詞,字母順序不發生變化字串
- 扯什麼kafka順序消費,然後呢?古爾丹,代價是什麼Kafka
- 系統快取全解析2:頁面輸出快取快取
- laravel 按照whereIn中給定陣列順序輸出Laravel陣列
- 剖析Disruptor:為什麼會這麼快?(二)神奇的快取行填充快取
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- 什麼是redis快取雪崩、快取穿透、快取擊穿Redis快取穿透
- React元件:為什麼呼叫順序是constructor -> willMount -> render -> DidMountReact元件Struct
- ppt動畫出現順序怎麼設定 PPT設定動畫文字順序動畫
- 演算法題———————輸入棧的入棧順序和出棧順序判斷是否合理演算法
- 為什麼output type condition記錄已經維護,但輸出不能自動建立IDOC
- “上下求索”的人工智慧市場了發生什麼變化?人工智慧
- 為什麼刪除記錄表檔案不會減小?(記錄的插入與刪除在磁碟上的變化)
- JavaScript萬物產生順序JavaScript
- 快取和web快取分別是什麼?快取Web
- 為什麼處理有序陣列比無序陣列快?陣列
- C++輸出流cout的執行順序問題C++
- 讓 排序 按照 in 列表的的顯示順序排序輸出。排序
- 高速輸出-我們戲說快取快取
- asp.net輸出快取的使用ASP.NET快取
- Kafka 為什麼快Kafka
- 查詢列表連結串列加排序 每次重新整理順序都不同是什麼情況?排序
- 解決邏輯匯出後SEQUENCE的值發生變化的問題
- 當你在瀏覽器中輸入URL回車後會發生什麼?瀏覽器
- 類的成員變數的初始化順序變數
- QT UI更改編譯後,輸出無變化 解決QTUI編譯
- 順序表(順序儲存)迴圈佇列類(初始化,入隊,退隊,輸出排頭與排尾指標及元素)佇列指標
- 面試官:快取穿透、快取雪崩和快取擊穿是什麼?面試快取穿透