Oracle-插入順序是否影響查詢順序


    測試一

    創建帶有時間格式字段的表,從小到大循環插入2020年每一天。

    不加排序查詢表中數據發現,數據並沒有按照從小到大顯示,第一行是2020-10-12。

    推測插入順序不影響查詢順序。

    

    測試二

    CREATE TABLE AS SELECT FROM 測試一的表 ORDER BY 日期,創建新表。

    不加排序查詢表中數據發現,新建的表數據按照從小到大顯示。第一行是2020-01-01。

    推測CREATE TABLE AS 在分配空間時整體划分,地址連續,所以查詢時根據創建時的順序顯示。

               

    測試三

    清空測試二創建的表,改為INSERT INTO SELECT * FROM 測試一的表 

    不加排序查詢表中數據發現,第一行是2020-07-18

    清空測試二創建的表,改為INSERT INTO SELECT * FROM 測試一的表  ORDER BY 日期

    不加排序查詢表中數據發現,第一行是2020-10-19

    再次清空測試二創建的表,INSERT INTO SELECT * FROM 測試一的表  ORDER BY 日期

    不加排序查詢表中數據發現,第一行是2020-10-10

    總結

    插入順序不影響查詢順序,插入時Oracle查詢可用塊存儲數據,塊的位置是隨機的,所以數據的順序無法確認。

    CREATE命令在執行時捕獲滿足表大小的塊,一次性分配地址,所以查詢時數據是連續的。

    發現

    測試一中,單獨查詢RQ字段,則數據是從小到大顯示的,測試三中並未出現此情況。

    原因,測試一中RQ字段為索引,所以在查詢是數據按照索引情況展示了。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM