索引是与表相关的一种可选择数据库对象。索引是为提高数据检索的性能而建立,利用它可快速地确定指定的信息。
索引可建立在一表的一列或多列上,一旦建立,由ORACLE自动维护和使用,对用户是完全透明的。然而而当一表上存在许多索引时,修改、删除和插入操作的性能会下降。
索引是表的一个微型拷贝。
创建索引的方法:
自动
当用户在表上定义了PRIMARY KEY或UNIQUE约束时,一个唯一索引将回被自动创建。
手工
用户为了加快查询速度,在列上创建索引。
唯一索引:索引字段值不允许重复。
创建唯一索引
CREATE UNIQUE(可写(unique)可不写(ununique) ) INDEX ui_dept_name ON dept (dname)
非唯一索引:索引字段值可以重复。默认情况下,Oracle创建的索引是不唯一索引。
重建索引:主要消除索引存储碎片。
ALTER INDEX emp_name REBUILD
删除索引
drop index index-name
查看索引:使用数据字典中的USER_INDEXES和USER_IND_COLUMNS查询表和列上的索引名称
SELECT ic.index_name, ic.column_name,
2 ic.column_position col_pos,ix.uniqueness
3 FROM user_indexes ix, user_ind_columns ic
4 WHERE ic.index_name = ix.index_name
5 AND ic.table_name = 'EMP';