索引
索引保存置指定条件的ROWID,
-
表的索引
-
索引信息
-- USER_INDEXES
-
索引列
-- DBA_IND_COLUMNS
--ALL_IND_COLUMNS
--USER_IND_COLUMNS
-
索引段位置及大小
-- DBA_IND_EXPRESSIONS
-- USER_IND_EXPRESSIONS
-
-
索引和对应的表放在不同的硬盘的不同表空间能够提高查询速度,Oracle能够并行读取不同硬盘的数据, 避免IO冲突
-
索引适用:
- 频繁查询列 索引行数低于总数的15%
- 频繁排序列
- 索引加速select,影响insert和delete
- 指定索引块空间的使用参数PCTFREE, 预留空间
- 索引和表相同表空间:简化管理; 不同表空间: 提高访问性能
- 大表建立索引时, 使用NOLOGGING 选项可以最小化重做记录, 降低索引建立时间
- 小表不要建索引
- join连接列建立索引
-
B树索引
默认, 索引数据按升序排列 由根块、分支块和叶块
create index IDX_EMP(ID) pctfree 25 tablespace users;
-
bitmap索引
当一个列的基数小于1%时, 这些列不再适合建立B树索引, 而适用于bitmap索引
alter system set create_bitmap_area_size = 8000 000 用于指定建立bitmap时分配的位图区大小, 默认8M, 越大索引建立越快, 重启生效
-
reverse 反向索引
顺序递增列上建立索引, B树在递增列上的索引(比如主键)会造成数据分布不均匀。反向索引将索引键值反转, 使其非递增, 然后简历B树, 这样B树更加均匀。
create index IDX_EMP_JOB on emp(job) reverse
-
function索引
create index emp_job_fun on emp(lower(job));
-
索引碎片
重建或合并索引
alter index emp_index coalesce deallocate unused;
alter index emp_index rebuild;
删除:
drop index emp_index
网友评论