当前位置: 代码迷 >> Oracle管理 >> oracle小表亟需建索引吗
  详细解决方案

oracle小表亟需建索引吗

热度:80   发布时间:2016-04-24 04:36:57.0
oracle小表需要建索引吗?
有个SQL查询语句涉及到一个大表和一个小表,大表建了索引,小表需要建索引吗?

------解决方案--------------------
你看看你的sql语句对应的执行计划,建个索引还是有必要的。
------解决方案--------------------
根据执行计划,具体情况具体分析,比如小表建索引一句sql快0.01s,但是跟着大表,要运行一千万次,那也很可观。
如果建索引后不影响预期的执行计划,也没什么影响,那就无所谓。
------解决方案--------------------
1、如果表足够小,access table full ,读几个块就可以将小表搞定的话,就没有必要建立外键之外的索引。
2、如果小表中的单行数据量非常大的话,建立一个索引还是有必要的。
3、如果小表是有外键约束的话,建立一个索引也是有必要的,这里并不是为了提高查询效率,而是为了避免锁。
4、如果小标本身仅仅是查询,更新很少,或者没有更新,比如是系统中的一个参数表的话,可以考虑将其建立为一个索引组织表。
5、一张大表和一张小表,Oracle一般会倾向于使用NL的连接方式,通常将小表作为LEADING表,有必要根据小标的连接条件,在大表中建立相应的索引,或者根据实际情况建立组合索引。
  相关解决方案