索引是一种可选的与表相关的数据库对象,可以用于提高数据的查询效率。索引是建立在表列上的数据库对象,但是无论其物理结构还是逻辑结构均不依赖于表。数据库中引入索引的目的是提高对表中数据的查询速度。如果一个表没有建立索引,则对该表进行查询时会进行全表扫描。如果表中有索引,则在条件查询时数据库系统优先对索引进行查询。索引可以提高查询效率的原因是索引结构中保存了索引值及其相应记录的物理地址ROWID,并按照索引值进行排序。使用索引查询时,先根据条件中的索引值查询有序索引结构中对应的ROWID,再根据ROWID查询表中的数据。

根据索引值是否唯一,分为唯一性索引和非唯一性索引,这两种索引的索引值允许为NULL。默认情况下oracle创建的索引是非唯一性索引。当表中存在主键约束或唯一性约束的时候,oracle会自动在相对应的列上创建唯一性索引。

根据索引的组织结构不同,可以分为平衡树(B树)索引和位图索引。B树索引占用空间多,适合索引值基数高、重复率低的应用。B树索引包括唯一性索引、非唯一性索引、反键索引、单列索引、复合索引等多种索引。位图索引是引用图的广度优先搜索遍历的二维数组结构,这种索引结构占用空间小,适合索引值少重复率高的应用。

根据索引基于列数的不同,可以分为单列索引和复合索引。

索引的使用原则:

1.导入数据之后再创建索引

2.在适当的表和列上创建适当的索引

1).经常查询的数据少于表记录总数的5%应设置索引
2).经常连接查询,可在连接列上建立索引提高速度
3).取值范围很大的列使用B树索引
4).取值范围很小的列使用位图索引
5).不能再取值范围极大的数据类型上设置索引,例如Long,Blob等
6).oracle会在主键约束和唯一性约束的列上创建索引

3.合理设置复合索引中列的顺序,使用频率高的列靠前

4.限制表中的索引数目,索引越多查询越快更新越慢

5.为索引设置合适的PCTFREE参数,特别是对于插入数据频繁的表

6.选择存储索引的表空间,索引和表同表空间利于维护,索引和表不同表空间利于存取性能提升

创建索引的SQL语法:

create [unique] [bitmap] index index_name on table_name([column_name[ASC|DESC],...]|[expression])

[reverse] [parameter_list]

修改索引的语法

alter index index_name coalesce;//合并索引

alter index index_name rebuild;//索引重建

alter index index_name_old rename to index_name_new;//索引重命名

索引监听

alter index index_name monitoring usage;//打开监听状态,可以在V$OBJECT_USAGE中看到

alter index index_name nomonitoring usage;//关闭监听状态

删除索引

删除需要考虑以下几种情况:

1.索引不再使用

2.通过监听发现索引使用频率很低

3.索引中碎片过多或者含有损坏数据,先删除再重建

4.移动表数据导致索引失效

删除语法: drop index index_name;

oracle索引的事相关推荐

  1. [转载]oracle索引的简单总结

    原文地址:oracle索引的简单总结作者:kindle 一.索引的概念: 数据库的索引类似于书籍的索引.在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程 ...

  2. 记录安装oracle的那些事(二)之双系统安装

    今天电脑恢复了前几天的模样,依旧是仅有的win7,胆颤心惊的依然决定用easybcd装. 首先,资源的需要: 1 两个centos的镜像.bin-dvd的,这个是全的,不用在线下载了. 2 easyB ...

  3. 索引名 oracle,ORACLE 索引名称矫情

    oracle 索引英文名称很多,翻译过来的话也很多中文名称,不过总得来说词不达意.也就是说讲中文的时候,对方无法理解你说的是啥意思,啥情况,啥原理. 比如前缀,非前缀.本地和全局,普通和分区.B树和位 ...

  4. Oracle索引失效问题

    Oracle 索引不起作用的几种情况: 1,<> 2,单独的>,<,(有时会用到,有时不会) 3,like "%_" 百分号在前.(可采用在建立索引时用re ...

  5. Oracle 索引扫描的五种类型

    之前在讨论CBO和RBO的时候提到了索引扫描的几种类型. Oracle Optimizer CBO RBO http://blog.csdn.net/tianlesoftware/archive/20 ...

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

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

  7. Oracle索引知识学习笔记

    目录 一.Oracle索引简介 1.1 索引分类 1.2 索引数据结构 1.3 索引特性 1.4 索引使用注意要点 1.5.索引的缺点 1.6.索引失效 二.索引分类介绍 2.1.位图索引 1.2.函 ...

  8. 【Oracle】Oracle索引

    在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 对于数据库来说,索引是一个必选项,但对于现 ...

  9. 定时创建oracle索引,oracle数据库关于索引建立及使用的详细介绍

    索引的说明 索引是与表相关的一个可选结构,在逻辑上和物理上都独立于表的数据,索引能优化查询,不能优化DML操作,Oracle自动维护索引,频繁的DML操作反而会引起大量的索引维护. 如果SQL语句仅访 ...

最新文章

  1. 【蓝桥java】递归基础之智力训练
  2. Vue+Openlayers实现地图缩放图标等比例缩放
  3. 参考平面及其高度_GCB | 盐沼和红树林湿地类型的转变会改变亚热带湿地对于海平面上升的脆弱性么?...
  4. sklearn自学指南(part22)--支持向量机的分类与回归
  5. jzoj6287-扭动的树【区间dp】
  6. xp正版验证补丁_实操web漏洞验证——IIS HTTP.sys 整数溢出漏洞
  7. PL/SQL中的=作用
  8. bootstrap验证 2021-04-21
  9. python selenium点击网页关闭按钮_基于python的selenium-打开关闭第二个页面
  10. mysql数据库获得树的节点
  11. 20160205 - Windows 10 家庭版没有组策略
  12. 设定asp服务器外部组件对象的方法是,ASP 3.0对ASP 2.0的改进
  13. 飞思卡尔单片机CAN模块的物理特性的示波器观察
  14. 面试宝典(二)之经典面试题(含详细答案)
  15. 常用统计预测方法介绍
  16. (建议收藏) | Spring Boot集成JSON Web Token(JWT)【知识积累】
  17. 图形化界面设计软件简要介绍
  18. 汇编中esp和ebp在函数栈空间的保存和变化 call的参数和局部变量的关系详解
  19. 自动驾驶专题介绍 ———— 转向系统
  20. 配置log4j2.xml输出MyBatis的SQL日志

热门文章

  1. IDEA 设置代码提示或自动补全的快捷键
  2. Matlab(4)矩阵
  3. 离线安装VS2019教程
  4. 图神经网络对抗攻击的研究学习(一)
  5. git pull 时一直卡在Unpacking objects【待解决】
  6. P2770【USACO 2014 January Gold】难度系数
  7. Spring-Boot框架学习视频-百度云盘
  8. NVM详细安装及使用
  9. 怎么查找iphone测试的软件,iphone怎么测试跑分 iphone跑分软件使用教程
  10. Android中fastboot devices无法发现设备解决方案和adb remount问题解决