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,具体为啥,当然百度咯
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号