Oracle 索引的创建,删除,修改

来源:互联网 发布:二次元人物制作软件 编辑:程序博客网 时间:2024/05/01 11:01

**

1.创建索引 CREATE INDEX

**
CREATE [unique] INDEX [user.]index //索引名
ON [user.]table //建立索引的表名
(column [ASC | DESC] [,column[ASC | DESC] ] … )//建立索引的列,一个索引最多有16列,long列、long raw列不能建索引列 ,asc升序排列(默认)desc降序。
[CLUSTER [scheam.]cluster]//聚簇索引
[INITRANS n]//初始事务入口数
[MAXTRANS n]//最大事务入口数
[PCTFREE n]//索引数据块空闲空间的百分比(不能指定pctused)
[STORAGE storage] //存储参数
[TABLESPACE tablespace]//表名空间
[NOLOGGING] //表示创建和重建索引时允许对表做DML操作,默认情况下不应该使用
[NO SORT]//不排序
Advanced
eg:create index contindex on lcuwmaster (contno asc)
给lcuwmaster表的contno列创建了升序索引
TIP:1.只有唯一索引才真正提高速度,一般索引只能提高30%左右。
2.空值不能被索引,一个表不能添加太多索引列
因为当对表进行增、删、改时,表的存放位置要记录到索引项中而降低速度。
3.表的主键默认是唯一索引。
**

2.修改索引 –减少硬盘碎片,提高应用系统性能

**
ALTER [UNIQUE] INDEX [user.]index //索引名
[INITRANS n]//初始事务入口处
[MAXTRANS n] //最大事务入口处
REBUILD //删除原来的索引再重新建立索引
[STORAGE n]//存储参数
//重建索引
eg:alter index contindex rebuild indexnew
//给索引重命名
alter index contindex rename to newindex;
//合并索引(表使用一段时间后在索引中会产生碎片,此时索引效率会降低,可以选择重建索引或者合并索引,合并索引方式更好些,无需额外存储空间,代价较低)
alter index contindex coalesce;
**

3.删除索引 –释放硬盘空间

**
drop index contindex //索引名
tip: 表结构被删除时,相关的所有索引也随之被删除

TIP:1.索引在逻辑上、物理上都和表及表中数据无关,创建或者删除索引不会影响表。
2.对表进行DML操作时,Oracle会自动管理索引,
3.Oracle创建主键时会自动在主键列上创建索引。

原创粉丝点击