前言

Oracle存储索引的数据结构是B*树。位图索引也是如此,仅仅只是是叶子节点不同B*数索引;

索引由根节点、分支节点和叶子节点组成。上级索引块包括下级索引块的索引数据,叶节点包括索引数据和确定行实际位置的rowid。

使用索引的目的:

加快查询速度

降低I/O操作

消除磁盘排序

何时使用索引:

查询返回的记录数

排序表<40%

非排序表 <7%

表的碎片较多(频繁添加、删除)

索引的种类

非唯一索引(最经常使用)

唯一索引

位图索引

局部有前缀分区索引

局部无前缀分区索引

全局有前缀分区索引

散列分区索引

基于函数的索引

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索引用不了,oracle使用索引与不使用索引的性能详析相关推荐

  1. Oracle教程之四招提高Oracle位图索引的使用效果

    位图索引是Oralce数据库索引中的异类,其在某些比较特殊的场合中有突出的表现.一般来说,位图索引的效果直接跟列的基 数相关.为此在谈到如何提高位图索引的使用效果时,也往往跟这个列的基数相关.为此必须 ...

  2. oracle 伪列访问序列,Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  3. oracle索引对模糊查询,Oracle索引

    一.Oracle索引原理 通俗易懂得讲,索引就是给每条记录建立了一个目录(索引), 每个建立的索引都是按照这个索引的字段去排序(实际未必是排序)存放, 然后按照索引字段去查询的时候,就先去查询索引,此 ...

  4. oracle数据库中索值,Oracle数据库中的索引详解

    Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...

  5. oracle选择外键列,Oracle外键列上是否需要索引?

    外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可能会造成严重性能问题. 无论是Or 外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可 ...

  6. oracle 列级外键,Oracle外键列上是否需要索引?

    外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可能会造成严重性能问题. 无论是Or 外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可 ...

  7. oracle date引入哪个包,oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题...

    环境: spring jdbc 3.2.3.RELEASE oracle 11.2.0.1.0 - Production 生产环境存在大表(3000万数据):WR_MP_HOURW_R,包含复合主键: ...

  8. c oracle 多条语句,Oracle 实践:如何编写一条 sql 语句获取数据表的全部索引信息(兼容 Oracle 19c、Oracle 11g)...

    一.引言 部门使用 Oracle 已经有一些时日,最近在工作中遇到了这么一个需求: 我们希望拿到某些数据表的全部索引信息,对索引信息进行检查,检查是否有漏掉没有创建的索引 这个需求,核心的点在于,我需 ...

  9. Oracle教程之管理索引(一)--Oracle管理索引

    1.索引的创建语法: CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> ON <schema>.<tabl ...

  10. oracle图书操作、sql语句查询+授权、视图、索引、表操作

    oracle图书操作.sql语句查询+授权.视图.索引.表操作 一.创建一张表book,表结构为(总编号,分类号,书名,作者,出版单位,单价),插入若干记录 二.创建一张表reader,表结构为(借书 ...

最新文章

  1. android ScrollView/NestedScrollView 添加可拖动的滚动条
  2. Ubuntu 无界面使用selenium chrome + headless
  3. html 物理引擎,在物理引擎中画圆弧
  4. 使用openocd调试Linux内核,openocd安装与调试
  5. 【Ubuntu】ubuntu系统下python3和python2环境自由切换
  6. overline css,CSS text-decoration-line 属性
  7. 我用休眠做并发控制,搞垮了下游服务
  8. recv和send函数
  9. 《恋上数据结构第1季》单向链表、双向链表
  10. 中国酒精炉行业市场供需与战略研究报告
  11. c语言一行灯的熄灯问题,熄灯问题
  12. TPU是什么材料,tpu材料属于塑料吗?
  13. DevOps--Chef/Puppet
  14. ico的尺寸_Favicon.ico浏览器图标文件制作和正确使用
  15. 【raspberry pi】树莓派3测评
  16. [AGC043-B]Merge Triplets
  17. PHP制作简易问卷调查
  18. 应聘经历:网易笔试归来
  19. TP link driver - TL-WN823N linux驱动
  20. 哈夫曼编码--贪心算法

热门文章

  1. python—列表,元组,字典
  2. 一次小黄车的二维码还原过程
  3. sitemap.xml 静态和动态生成页面 shopnc二次开发 动态生成sitemap.xml
  4. Linux多线程通信
  5. 分享100佳精美的作品集网站设计案例
  6. 论Web控件开发 - 完美上传下载控件“新”(一)
  7. 网络核心之数据交换 - 报文、分组交换
  8. Security+ 学习笔记47 事件响应方案
  9. Linux Apache服务详解——Apache服务访问控制
  10. BGP联邦原理及配置实例