rebuild 和rebuild online

一、什么时候创建索引?
索引多并不意味着性能好,索引对查询有利 对DML是有负担的.
 A.一个字段包含一个较大范围的值,也就是说重复率比较小,就是所谓的高基数列
  在一个大范围内去找小范围或精确的单个或几个值时 ,
  索引非常有效,高基数列适合作索引 ,低基数列不适合作索引
 B.一个列包含大量的NULL值
   索引是不存NULL值的,那也就意味着这个索引很小,查起来很快
   但只限于查明确值
 C.频繁在where子句中出现的列 我们要关注是否建立索引
 D.大表的外键列,需要建立索引,因为主键值的DML操作会间接的去外键中验证是否在外键列引用
   外键列此时没索引, 就要全表扫描, 所以一个主键只有几条记录,外键无索引一个DML可能会几个小时
二、什么时候不创建索引
 1.这个列虽然索引效果很好,但是你业务中很少去使用这个列去查询的,考虑不要建索引,以均衡索引的成本.
 2.如果该列上返回的结果集大于总结果集的2-4%(看总的数据量和CBO算法来定这只是参考值),谨慎考虑建立索引.
 3.表很小时。因为很小表的时候全表访问比索引访问成本还低,有没有索引影响不大  业务初期的时候不创建索引 ,后期有一定的数据量的时候从创建
 4.频繁更新的表,其频繁甚至超过查询,慎重考虑建立索引
 5.这个索引列使用了函数表达式 需要创建函数索引 
 
 SQL> select instance_name ,status from v$instance;
INSTANCE_NAME    STATUS
---------------- ------------
ora10g           OPEN
SQL> select * from v$version
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值