日期:2014-05-16  浏览次数:20498 次

对于ORACLE索引的一点发现(不同表连接写法对索引的需求)

2条写法不同的表连接语句:(效果一样)

  select * from T_FORM_ELEMENT t join t_form_resources t1 on t1.meta_id=t.meta_id;
  select * from T_FORM_ELEMENT t,t_form_resources t1 where t.meta_id=t1.meta_id;

在表T_FORM_ELEMENT的字段meta_id上建有索引PK_T_FORM_ELEMENT。

 

1.当索引有效时

   alter index PK_T_FORM_ELEMENT rebuild;

  

 

2.当索引无效时:

  alter index PK_T_FORM_ELEMENT unusable;

 

结论:

   语句1:select * from T_FORM_ELEMENT t join t_form_resources t1 on t1.meta_id=t.meta_id; 不管索引是有效还是无效,都会走索引。

   语句2:select * from T_FORM_ELEMENT t,t_form_resources t1 where t.meta_id=t1.meta_id; 当索引无效时,不走索引。

   SQL语句写法不同,引用索引的程度不同。