您的位置:首页 > 数据库 > Oracle

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

2017-12-14 16:53 316 查看
**

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创建主键时会自动在主键列上创建索引。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 索引