脚本宝典收集整理的这篇文章主要介绍了oracle使用索引与不使用索引的性能详析,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
前言
oracle存储索引的数据结构是B*树。位图索引也是如此,仅仅只是是叶子节点不同B*数索引;
索引由根节点、分支节点和叶子节点组成。上级索引块包括下级索引块的索引数据,叶节点包括索引数据和确定行实际位置的rowid。
使用索引的目的:
何时使用索引:
索引的种类
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 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使用率很低,并且检索是从索引开始而不是全文检索
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本宝典的支持。
以上是脚本宝典为你收集整理的oracle使用索引与不使用索引的性能详析全部内容,希望文章能够帮你解决oracle使用索引与不使用索引的性能详析所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。