1)概念: Oracle中的索引是基于表或集群的数据对象. 它具有类似于表的独立段存储结构,并且需要在表空间中分配存储空间.
2)功能: 可以提高查找表中数据的速度.
1)B树索引(测试站点): 它是Oracle中使用最广泛的索引和默认索引类型. B树是指平衡树(Balanced Tree),它使用平衡算法来管理索引.
适用于B树索引:
2)位图索引: 当要索引的数据具有大量重复值时,如果在其上建立了B树索引,则大量相同索引列值将存储在叶块,而是降低查询速度. 在这种情况下,应使用位图索引.
每个索引列值存储一个位图,该位图由二进制位组成.
3)反向键索引: 它是一个B树索引,物理上颠倒了索引的列值,但列的顺序保持不变. 反向键索引通常建立在值不断增加的列上,以便数据均匀分布在整个索引中. 目的是解决叶子块争用的问题.
l对于创建反向键索引的列,Oracle将在执行查询操作时自动反向查询条件以匹配反向键索引. 如果在WHERE子句中使用范围查询条件(例如BETWEEN,等),因为索引值是反向的,因此查询不会以原始顺序执行. 查询期间必须执行全表扫描,因此反向键索引“列”不适用于范围查询.
4)基于函数的索引: 基于函数的索引将首先计算列的函数或表达式,然后将计算结果存储在索引中. 创建这种类型的索引时,需要注意以下几点:
5)唯一索引和非唯一索引(测试站点)
如果索引值可以相同,则索引可以分为唯一索引和非唯一索引. 类似于唯一约束.
唯一索引是指索引值不重复的索引
6)单列索引和复合索引(测试站点)
单列索引是所创建表的单列上的索引. 如果将表的多个列作为一个整体并在其上创建了索引,则该索引称为复合索引.
语法:
create index index_name on table_name(字段名);
1)将索引更改为反向键索引或普通索引
语法:
alter index index_name rebuild noreverse;//普通索引
alter index index_name rebuild reverse;//反向键索引
2)重命名索引
语法:
alter index index_name rename to new_name;
3)修改要压缩或未压缩的索引
语法:
alter index index_name rebuild nocompress;//非压缩
alter index index_name rebuild compress;//压缩
4)修改索引以写入重做日志文件或不写入重做日志文件
语法:
alter index index_name rebuild nologging;//不写入重做日志文件
alter index index_name rebuild logging;//写入重做日志文件
5)修改索引表空间
语法:
alter index index_name tablespace tablespace_name;
6)合并索引
语法:
alter index index_name coalesce;
语法:
drop index index_name;
1)您可以通过以下数据字典视图了解有关用户的信息:
dba_indexes,all_indexes和user_indexes; dba_ind_columns,all_ind_columns和user_ind_columns; dba_ind_expressions,all_ind_expressions和user_ind_expressions.
1)除了加快查询速度和提高系统性能外oracle中表的索引,索引的另一个重要作用是为主键约束和唯一约束提供支持. (测试中心)
2)创建主键约束和唯一约束时,Oracle将在此列上自动创建唯一索引.
3)不仅主键约束和唯一约束都需要使用唯一索引,而且外键约束也要使用
.
1)索引具有以下缺点:
2)在创建和使用索引时,请先查看其是否满足以下要求:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-195694-1.html