91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle索引掃描

發布時間:2020-06-20 11:46:11 來源:網絡 閱讀:398 作者:llc018198 欄目:關系型數據庫
  1. 索引唯一掃描:是針對唯一性索引大掃描,它僅僅適用于where條件里是等值查詢的目標SQL,因為掃描的對象是唯一性索引,只掃描索引高度這么多個索引塊就停止了,索引的唯一掃描的結果至多只返回一條記錄,索引的唯一掃描,掃描索引高度-2個分支塊,永遠只掃描一個葉子塊

  2. 索引范圍掃描:索引范圍掃描,掃描索引高度-2個分支快,要掃描N多葉子塊,取決于where條件,索引范圍掃描是單塊讀,因為物理存儲是不連續的select * from test where id<=1000;訪問路徑:ROOT -B1 -L1 -L7

     

 

 

 

索引是排序的,從左到右升序排,最左最小,最右做大,索引默認從左向右掃描,也可以加hint倒著掃描:

SQL> select /*+ index_desc(test) */*from test where object_id<=20;
19 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 1069979465
---------------------------------------------------------------------------------------
| Id  | Operation       | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |       |    19 |  3933 |     3 (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID | TEST   |    19 |  3933 |     3 (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN DESCENDING| IDX_ID |    19 |       |     2 (0)| 00:00:01 |
---------------------------------------------------------------------------------------

3.索引的葉子塊只存rowid和列的鍵值,比表的數據塊存的更多的值,

select object_id from test where object_id<100;
select object_id from test where object_id<1000

性能是一樣的,索引掃描最大問題在于回表,如果回表再過濾,就最坑爹了,錯誤的INDEX RANGE SCAN,返回數據很多和大量回表

4.反鍵索引,

如果用sequence作為主鍵,如果insert數據,會不斷更新右邊的葉子塊,dml操作,同一個塊,同時只有一個進程去持有,CBC持有,latch: cache buffers chains,在高并發的insert環境中,sequence主鍵很容易產生熱點塊,解決辦法,把主鍵處理成隨機的,比如手機號或者***號,如果已經用sequence,可用反轉索引把葉子塊打亂來解決。另外一種解決辦法:sid+sequence+pid,反鍵索引多范圍掃描影響大。

5. INDEX SKIP SCAN 索引跳躍掃描。單塊讀 只可能發生在組合索引上,引導列(組合索引第一列)沒有包含在where條件中,并且引導列基數很低。INDEX SKIP SCAN 一般來說只會返回少量數據,如果返回大量數據,說明該執 行計劃可能有問題,也就是說索引建立不對。等待事件:db file sequential read HINT: INDEX_SS(表名/別名 索引名)

6.INDEX FULL SCAN (MIN/MAX) 索引最小/最大值掃描。單塊讀 通常發生在 select max(xxx) 或者
select min(xxx)并且xxx列上有索引。
等待事件:db file sequential read 我們幾乎觀察不到,因為只需讀
取索引高度相同的index block數。
HINT 無需指定,有索引會自動走INDEX FULL SCAN(MIN/MAX)
把select max(id) ,min(id) from test;

改成select (select max(id) from test) max,(select min(id) from test) min from dual,如果不改寫,需要掃描所有的葉子塊,為index full scan

==index uniqe scan ,index range scan,index skip scan 發生以上3種掃描方式的重大前提是必須有where條件,而index full scan和index fast full scan不需要where條件也可以走,

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平原县| 仁怀市| 石景山区| 鹰潭市| 林周县| 建昌县| 仁怀市| 集贤县| 丰原市| 阿拉善右旗| 周宁县| 那坡县| 革吉县| 光山县| 西藏| 河南省| 沙田区| 靖江市| 连州市| 洛扎县| 厦门市| 万宁市| 乌兰县| 闻喜县| 社会| 惠东县| 南皮县| 前郭尔| 大庆市| 正定县| 阿克陶县| 乌恰县| 水富县| 泌阳县| 鄂托克前旗| 镇巴县| 泽州县| 年辖:市辖区| 滦南县| 尼木县| SHOW|