码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 11g R2 索引

时间:2018-09-04 11:37:55      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:反向   占用   对象   需要   函数   编号   维护   RoCE   时间   

索引是oracle提供的一个对象,提供了一种快速访问数据的途径,提高了数据库的检索性能。索引使数据库程序无需对整个表进行全表扫描,就可以在其中找到所需要的数据,就想书的目录,可以通过他快速查找所需信息,无需阅读整本书。

oracle的数据库管理系统在访问数据时使用以下3种访问方法;
1.全表扫描

2.通过ROWID

3.使用索引

索引的分类:

1,B树索引结构

索引的顶部为根,其中包含指向下一级索引的项。下一级为分支块,分支块又指向索引中下一级的块,最低一级的块称为叶节点,其中包含指向表数据行的索引项。叶节点为双向连接,有助于按关键字值得升序和降序扫描索引。

创建普通索引
创建普通索引的语法

create [unique] index 索引名称 on 表名(列名)[tablespace表空间名称]

[unique]用于指定唯一索引,默认情况下为非唯一索引

[tablespace]为索引指定表空间

练习环境
技术分享图片
在雇员EMP表中,在雇员名称列创建B树索引,oracle创建的普通索引如果没有说

明类型就是B树索引
技术分享图片
查看刚刚创将的索引 EMP_NAME_IDX
技术分享图片
创建唯一索引和非唯一索引
唯一索引:保证定义索引的列中没有任何重复值,唯一索引的索引关键字只能指向表中的一行。

非唯一索引:定义索引的列中可以有重复值

在薪水级别salgrade表中,为级别编号(grade)列创建唯一索引
技术分享图片
反向键索引
与常规B树索引相反,反向键索引在保持顺序的同时,反转索引列的字节。反向键索引通过反转索引键的数据值,使得索引的修改平均分布到整个索引树上,主要应用多个实例可同时访问同一个数据库的场景中。使用反向键索引将索引插入操作分散在多个索引块键,如果使用B数索引的情况下,由于索引关键字在索引树中的位置相近而处于同一个索引块中,多个实例同时更新时会发生冲突,从而导致I/O访问上的瓶颈。

语法如下:

CREATE index 索引名称 on 表名(列名)REVERSE;
位图索引
位图索引适用于低基数的列,即该列的值是有限的几个,例如雇员表中的工种(job)列,即便是几百万条雇员记录,工种也是有限的。JOB列可以作为位图索引

位图索引的优点:

相对B树索引而言,基于位图索引列的查询可以减少响应时间

相比其他索引技术,位图索引占用空间有所减少

位图索引不应当在频繁发生INSERT,update,delete操作的表上使用,这是因为单个位图索引项指向表的很多数据行,当修改索引项时需要将其指向的数据行全部锁定,这会严重降低数据库的并发处理能力。位图索引适用于数据仓库和决策支持系统中.

在雇员表(emp)表中,为工种(job)列创建位图索引
技术分享图片
在雇员表(emp)中,为雇员名称(ename)列创建大写函数索引

基于函数的索引
技术分享图片
查看索引列相关的信息:索引名,表名,索引列
技术分享图片
维护索引
重建索引:

索引需要维护,如果建立了索引的表中有大量的删除和插入操作,会使得索引很大,因为删除操作后,删除值得索引空间不能被自动重新使用。对于大表和DML操作频繁的表,索引的维护是很重要的。ORACLE提供了REBUILD指令来重建索引,使索引空间可以重用删除值所占用的空间,使索引更加进奏。
技术分享图片
在重建索引时,也可以修改索引的表空间
技术分享图片
技术分享图片
合并索引碎片

合并索引碎片可以释放部分磁盘空间,是索引维护的一种重要方式,也是维护磁盘空间的方式
技术分享图片
删除索引

DROP INDEX语句删除索引

删除雇员表中的INDEX_BIT_JOB位图索引
技术分享图片
如果对此有兴趣,请扫下面二维码免费获取更多详情
技术分享图片

Oracle 11g R2 索引

标签:反向   占用   对象   需要   函数   编号   维护   RoCE   时间   

原文地址:http://blog.51cto.com/11233498/2169967

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!