一、索引
a) 使用索引的优点
i. 一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中
ii. 索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度
iii. 索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管
iv. 理系统决定何时使用索引. 用户不用在查询语句中指定使用哪个索引
v. 在删除一个表时, 所有基于该表的索引会自动被删除
vi. 通过指针加速 Oracle 服务器的查询速度
vii. 通过快速定位数据的方法,减少磁盘 I/O
b) 索引的创建方法
i. 自动创建:在定义PRIMARY KEY或UNIQUE约束侯系统自动在相应的列上创建唯一性索引
ii. 手动创建:用户可以在其他列上创建非唯一的索引,以加速查询
c) 创建索引的实例
i. 在一个或多个列上创建索引
Create index indexname on table (column[,column]….);
ii. 在表EMPLOYEES的列LAST_NAME上创建索引
Create index emp_last_name_idx on employees(last _name);
Index create.
d) 索引的创建时期
i. 要创建索引情况
1. 列中数据分布范围很广
2. 列经常在where子句或连接条件中出现
3. 表经常被访问而且数据量很大,访问的数据大概站数据总量的2%到4%
ii. 不要创建索引情况
1. 表很小
2. 列不经常作为连接条件或出现在where子句中
3. 查询的数据大概2%到4%
4. 表经常更新
e) 查询索引
i. 可以使用数据字典视图 USER_INDEXES 和 USER_IND_COLUMNS 查看索引的信息
i. SELECT ic.index_name, ic.column_name,
i. ic.column_position col_pos,ix.uniqueness
i.FROM user_indexes ix, user_ind_columns ic
i.WHERE ic.index_name = ix.index_name
i.AND ic.table_name = 'EMPLOYEES';
f) 删除索引
i. 使用DROP INDEX 命令删除索引
DROP INDEX index;
ii. 删除索引UPPER_LAST_NAME_IDX
DROP INDEX upper_last_name_idx;
iii. 只有索引的拥有者或拥有DROP ANY INDEX权限的用户才可以删除索引
二、同义词
a) 使用索引的优点
i. 方便访问其他用户的对象
ii. 缩短对象名字的长度
iii. CREATE [PUBLIC] SYNONYM synonym
iii.FOR object;
b) 创建同义词
i. 为视图DEPT_SUM_VU创建同义词
CREATE SYNONYM d_sum
FOR dept_sum_vu;
Synonym Created.
c) 删除同义词
DROP SYNONYM d_sum;
Synonym dropped.