oracle管理之 index(server.102 b14231)

本文详细介绍了Oracle数据库中索引的最佳实践,包括索引创建的原则、不同类型的索引及其使用场景、索引维护的方法以及如何监控索引的使用情况等。通过遵循这些实践,可以显著提高数据库查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--index management
--load data first,create index after
--创建索引的规则
1、query less then 15% rows of a large table
2、在多表连接字段上建立index
3、小表不需要建立index
4、在相对唯一的字段上建立b-tree index,集势小的字段上建立bitmap index
5、WHERE COL_X > -9.99 * power(10,125) 来代替 WHERE COL_X IS NOT NULL(假设col_x number类型


6、多字段复合index,注意字段顺序,只有匹配字段顺序的才可以利用索引
7、同一个表的index的数量,要权衡select update的性能,在只读表上可以多建index,在频繁更新的表

上index反而影响性能,因为update table的同时还要update 相关的index
8、建议index size最大为data的一半
9、index table分开tablespace存储能减少磁盘争用,但要求tablespace online,存储在一个

talbespace,维护方便
10、create index nologging + parallel 减少large table index create 的时间,做好db备份

--index (COALESCE vs rebuild)
COALESCE合并叶子节点数据,不单独需要额外空间;代价小,速度快
rebuild 重新建立index tree,需要额外空间,可以移动存储表空间,减小tree高度,成本高
ALTER INDEX vmoore COALESCE;
--唯一索引和非唯一索引
定义unique约束和primary key,oracle都会自动创建相关unique index
index创建 最好显示创建
CREATE TABLE c(c1 INT, c2 INT);
CREATE INDEX ci ON c (c1, c2);
ALTER TABLE c ADD CONSTRAINT cpk PRIMARY KEY (c1) USING INDEX ci;
CREATE TABLE a (a1 INT PRIMARY KEY USING INDEX (create index ai on a (a1)));
CREATE INDEX emp_ename ON emp(ename) COMPUTE STATISTICS;
--创建大的index,单独设置一个临时表空间,创建完index,再删除temporary
CREATE INDEX emp_name ON emp (mgr, emp1, emp2, emp3) ONLINE;
CREATE INDEX area_index ON rivers (area(geo));
ALTER INDEX emp_name REBUILD ONLINE;
--index monitor
ALTER INDEX index MONITORING USAGE;
ALTER INDEX index NOMONITORING USAGE;
V$OBJECT_USAGE
ANALYZE INDEX...VALIDATE STRUCTURE
SELECT PCT_USED FROM INDEX_STATS WHERE NAME = 'index';
--index 性能视图
DBA_INDEXES
ALL_INDEXES
USER_INDEXES
DBA_IND_COLUMNS
ALL_IND_COLUMNS
USER_IND_COLUMNS
DBA_IND_EXPRESSIONS
ALL_IND_EXPRESSIONS
USER_IND_EXPRESSIONS
DBA_IND_STATISTICS
ALL_IND_STATISTICS
USER_IND_STATISTICS
INDEX_STATS
INDEX_HISTOGRAM
V$OBJECT_USAGE

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/70612/viewspace-1024842/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/70612/viewspace-1024842/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值