目录
目标:
一、基础知识
1、Classification ofindexes 索引的分类
2、B-Tree vs Bitmap
3、Creating Indexes: Guidelines 创建索引:准则
4、Offline Index Rebuild 脱机索引重建
5、RebuildingIndexes 重建索引
6、Online Index Rebuild 在线索引重建
7、Index Coalescing 索引合并
8、Getting Index Information 获取索引信息
二、基础操作
1、创建普通索引
2、Creating B-Tree Indexes 创建B树索引
3、创建Bit map索引
4、Storage Params for indexes 修改索引的存储参数
5、Alloc & Dealloc Index Space 分配和取消分配索引空间
6、Rebuilding Indexes 重建索引
7、Rebuilding indexes Online 在线重建索引
8、Coalescing Indexes 合并索引(解决碎片化问题)
9、Checking Index Validity 检查索引有效性
10、Dropping Indexes 删除索引
11、Identifying Unused indexes 识别未使用的索引
Managing Indexes 管理索引
目标:
- 列出不同类型的索引及其用法
- 创建各种类型的索引
- 重组索引
- 维护索引
- 监视索引的使用情况
- 获取索引信息
- B树(大部分索引使用的都得B树索引)
- 适用于高基数色谱柱
- 更新的按键相对便宜
- 使用OR谓词的查询效率低下
- 对OLTP有用
- 位图
- 适用于低基数列
- 对关键列的更新非常昂贵
- 对于使用OR谓词的查询是有效的
- 对数据仓库很有用
在以下情况下重建索引:
可以通过查询以下视图来获取有关索引的信息:
格式:CREATE INDEX 索引名字 ON 添加索引的表字段
样例:
CREATE INDEX t_idX1 ON t(id);
创建一个索引,名字为t_idX1在t表的id字段上
选择是否创建索引需要根据具体情况而论,如果你需要经常查询且数据量比较大的时候创建索引会大大增加查询的速度,但是对于经常插入、修改等操作的数据不适合创建索引,因为索引会使得这写操作速度降低
CREATE INDEX hr.employees_last_name_idx
ON hr.employees (last_name)
PCTFREE 30 -- 如果块的剩余空间小于百分之30就无法插入
STORAGE (INITIAL 200K NEXT 200K
PCTINCREASE O MAXEXTENTS 50)
TABLESPACE indx;
简单的创建B树索引的话只需要写以上代码前两行即可(后边参数默认),高级的话需要全写进行修改参数。
格式:CREATE BITMAP INDEX 索引名 ON 添加索引的表字段;
CREATE BITMAP INDEX my_bit_idx ON t(sex);
ALTER INDEX employees_last_name idx
STORAGE (NEXT 400K
MAXEXTENTS 100);
分配
ALTER INDEX orders_region_id_idx
ALLOCATE EXTENT (SIZE 200K
DATAFILE '/DISK6/indx01.dbf');
取消分配
ALTER INDEX orders_id_idx
DEALLOCATE UNUSED:
ALTER INDEX orders_region_id_idx REBUILD
TABLESPACE indx02;
ALTER INDEX orders_id_idx REBUILD ONLINE;
ALTER INDEX orders_id_idx COALESCE;
ANALYZE INDEX orders_region_id_idx
VALIDATE STRUCTURE:
DROP INDEX hr.departments_name_idx;
- To start monitoring the usage of an index:要开始监视索引的使用情况
ALTER INDEX hr.dept_id_idx MONITORING USAGE
- To stop monitoring the usage of an index:若要停止监视索引的使用情况:
ALTER INDEX hr.dept_id_idx NOMONITORING USAGE