您好,登錄后才能下訂單哦!
oracle中使用索引與不使用索引的性能對比分析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
前言
Oracle存儲索引的數據結構是B*樹。位圖索引也是如此,僅僅只是是葉子節點不同B*數索引;
索引由根節點、分支節點和葉子節點組成。上級索引塊包括下級索引塊的索引數據,葉節點包括索引數據和確定行實際位置的rowid。
使用索引的目的:
加快查詢速度
降低I/O操作
消除磁盤排序
何時使用索引:
查詢返回的記錄數
排序表<40%
非排序表 <7%
表的碎片較多(頻繁添加、刪除)
索引的種類
非唯一索引(最經常使用)
唯一索引
位圖索引
局部有前綴分區索引
局部無前綴分區索引
全局有前綴分區索引
散列分區索引
基于函數的索引
oracle使用索引與不使用的性能
首先準備一張百萬條數據的表,這樣分析數據差距更形象!
下面用分頁表數據對表進行分析,根據EMP_ID 字段排序,使用索引和不使用索引性能差距!
sql查詢語法準備,具體業務根據具體表書寫sql語法:
SELECT * FROM (SELECT ROW_.*, ROWNUM ROWNUM_ FROM (SELECT * FROM KQS_SQ_INFO i ORDER BY i.EMP_ID desc ) ROW_ WHERE ROWNUM <= 20) WHERE ROWNUM_ >= 10;
使用 explain plan for
可以分析sql
如下:
explain plan for SELECT * FROM (SELECT ROW_.*, ROWNUM ROWNUM_ FROM (SELECT * FROM KQS_SQ_INFO i ORDER BY i.EMP_ID desc ) ROW_ WHERE ROWNUM <= 20) WHERE ROWNUM_ >= 10;
計算出SQL性能,使用
select * from TABLE(dbms_xplan.display);打印出性能分析表
如下圖:
使用索引前:
關于oracle中使用索引與不使用索引的性能對比分析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。