索引:
1、一种独立于表的模式对象,可以存储在与表不同的磁盘或表空间中
索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度
2、索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理系统决定何时使用索引. 用户不用在查询语句中指定使用哪个索引
3、在删除一个表时, 所有基于该表的索引会自动被删除
4、 通过指针加速 Oracle 服务器的查询速度
5、 通过快速定位数据的方法,减少磁盘 I/O
创建索引:
1、自动创建:在定义 PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引
2、手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询
3、在一个或多个列上创建索引
Create index index on table(column[,column]…)
4、在表employees的列last_name上创建索引
Create index emp_last_name_idx on employees(last_name);
什么时候创建索引:
1、 列中数据值分布范围很广
2、 列经常在 WHERE 子句或连接条件中出现
3、 表经常被访问而且数据量很大 ,访问的数据大概占数据总量的2%到4%
查询索引
Select ic,index_name,ic.column_name,ic.column_position col_pos,ix.uniqueness
From user_indexes ix,user_ind_columns ic
Where ic.index_name=ix.index_name and ic.table_name=’employees’;
删除索引
使用drop index命令删除索引
Drop index index;
只有索引的拥有者或拥有DROPANY INDEX权限的用户才可以删除索引
同义词
使用同义词访问相同的对象:
1、方便访问其他用户的对象
2、缩短对象名字的长度
Create public synonym synonym for object;
删除和创建同义词
为视图dept_sum_vu创建同义词
Create synonym d_sum for dept_sum_vu;
删除同义词
Drop sysnonym d_sum;