oracle使用索引与不使用索引的性能详析

所属分类: 数据库 / oracle 阅读数: 843
收藏 0 赞 0 分享

前言

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数据库添加或删除一列的sql语句

需要注意的一点,如果要修改的表,不是当前的用户的表,那么就需要添加上用户的名称。以及有修改此表的权限
收藏 0 赞 0 分享

ORACLE数据库查看执行计划的方法

基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对SQL进行优化做相应说明
收藏 0 赞 0 分享

Oracle客户端 NLS_LANG 的设置方法

Oracle客户端 NLS_LANG 的设置方法,如果服务器端与客户端不一样会提示错误,windows下通过注册表下可以解决
收藏 0 赞 0 分享

Windows下ORACLE 10g完全卸载的方法分析

最近有朋友在群里问如何完全卸载ORACLE 10g,这里简单的整理下,方便需要的朋友
收藏 0 赞 0 分享

Oracle新建用户、角色,授权,建表空间的sql语句

Oracle创建用户操作相信大家都不陌生,下面就为您介绍Oracle创建用户的语法的相关知识,希望对您学习Oracle创建用户的方面能有所帮助
收藏 0 赞 0 分享

Oracle的默认用户密码

创建表空间和用户时,需要的时候竟然忘记了密码,试了好多次都没连接上,进而用户也被锁定,下面就教您处理Oracle默认用户的密码问题的方法,希望对和我一样情况的朋友们有所帮助
收藏 0 赞 0 分享

Oracle中查询本月星期5的所有日期列表的语句

Oracle中查询本月星期5的所有日期列表的语句,需要的朋友可以参考下
收藏 0 赞 0 分享

windows 7安装ORACLE 10g客户端的方法分享

因为oracle 10g暂时没有与win7兼容的版本,我们可以通过对安装软件中某些文件的修改达到安装的目地
收藏 0 赞 0 分享

oracle数据库下统计专营店的男女数量的语句

oracle数据库下统计专营店的男女数量的语句,方便需要的朋友
收藏 0 赞 0 分享

Oracle中返回结果集的存储过程分享

Oracle不像SQLServer那样在存储过程中用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的
收藏 0 赞 0 分享
查看更多