前言
Oracle存儲索引的數(shù)據(jù)結(jié)構(gòu)是B*樹。位圖索引也是如此,僅僅只是是葉子節(jié)點不同B*數(shù)索引;
索引由根節(jié)點、分支節(jié)點和葉子節(jié)點組成。上級索引塊包括下級索引塊的索引數(shù)據(jù),葉節(jié)點包括索引數(shù)據(jù)和確定行實際位置的rowid。
使用索引的目的:
何時使用索引:
索引的種類
oracle使用索引與不使用的性能
首先準備一張百萬條數(shù)據(jù)的表,這樣分析數(shù)據(jù)差距更形象!
下面用分頁表數(shù)據(jù)對表進行分析,根據(jù)EMP_ID 字段排序,使用索引和不使用索引性能差距!
sql查詢語法準備,具體業(yè)務根據(jù)具體表書寫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);打印出性能分析表
如下圖:
使用索引前:
使用索引后
可以清晰看到使用后cpu使用率很低,并且檢索是從索引開始而不是全文檢索
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。
新聞熱點
疑難解答
圖片精選