- 通过调整CREATE_BITMAP_AREA_SIZE来定义位图缓存内存区大小.当这个缓存足够大时,可以有效的加快位图索引的操作速度,因为操作是在内存中进行.
- 普通索引更适用OLTP类型的操作,即数据变化频繁.BITMAP更适合DSS类型的操作,即查询多,量大.但是所有的索引在执行DML类型操作时,消耗都比较大. 要慎用索引.
- 尽量使用统一的EXTENT尺寸,数据块大小的5倍或表空间MINIMUM EXTENT的尺寸.以减少系统的转换时间.
- 对索引可以考虑合理使用NOLOGGING.毕竟重建索引也不麻烦,丢失也没关系.这样可以提高系统平常的运行效率
- 查询索引信息
SELECT index_name, table_name, tablespace_name, index_type, uniqueness, status FROM dba_indexes;
和 (索引,列对照信息)
SELECT index_name, table_name, column_name, index_owner, table_owner FROM dba_ind_columns;
和 (存储信息)
SELECT index_name, pct_free, pct_increase, initial_extent, next_extent,min_extents,max_extents FROM dba_indexes; - 创建索引.注意不能指定PCTUSED,INITRANS可以较高,因为索引的数据一般较少,同时访问的几率较大.
CREATE [UNIQUE | BITMAP] INDEX xxx_idx ON xxx(col_name)
PCTFREE 20
STORAGE(INITIAL 100K NEXT 100K PCTINCREASE 0 MAXEXTENTS 100)
TABLESPACE abc_indx;
其中NEXT参数的效果会服从于表空间的总体设定,本地管理的表空间基本上本参数不起作用. - 重建索引.(可以同时使用存储子句和参数,不重建时也可直接使用)
ALTER INDEX xxx_idx REBUILD
PCTFREE 40
STORAGE (NEXT 300K); - 在线重建索引. 可以减少加锁时间,从而开放使用DML类型操作
ALTER INDEX xxx_idx REBUILD ONLINE - 手动拓展索引的空间
ALTER INDEX xxx_idx ALLOCATE EXTENT; - 收回未用到的空间
ALTER INDEX xxx_idx DEALLOCATE UNUSED; - 索引碎片整理
ALTER INDEX xxx_idx COALESCE; - 标识索引是否使用过
ALTER INDEX xxx_idx MONITORING USAGE;
查询:
SELECT * FROM v$object_usage; - 取消监控
ALTER INDEX xxx_idx NOMONITORING USAGE; - 删除索引
DROP INDEX xxx_idx;
Oracle索引管理常用操作
最新推荐文章于 2024-01-26 16:46:59 发布