前言
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
可以分析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使用率很低,并且检索是从索引开始而不是全文检索
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对移动技术网的支持。
如对本文有疑问, 点击进行留言回复!!
Oracle 基本概念 Dadabase,schema,user,table...
dbeaver连接Oracle中文乱码的解决方案--druid
Oracle常用语句(时间格式、去重、去特殊符号、查询表空间等)
Navicate 如何导出数据库中的存储过程、事件、视图等?
每日一记:Oracle升级2020年4月份的数据库补丁Database Patch Set Update : 11.2.0.4.200414 (30670774)
Oracle 19.3 dataguard for Redhat 7.6
网友评论