oracle使用索引和不使用索引性能分析

宁静致远 2018-10-12 01:4637 阅读

首先准备一张百万条数据的表,这样分析数据差距更形象!

下面用分页表数据对表进行分析,根据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使用率很低,并且检索是从索引开始而不是全文检索

 

回复数量: 0
暂无评论~~
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!