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);打印出性能分析表

如下圖:

使用索引后:

使用索引前

 

可以清晰看到使用后cpu使用率很低,並且檢索是從索引開始而不是全文檢索

 

注意:為了提升性能,建議排序列為not null,具體為啥,當然百度咯

 


免責聲明!

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



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