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

oracle索引的注意
4比较不匹配的数据类型
  
  比较不匹配的数据类型也是比较难于发现的性能问题之一。
  
  注意下面查询的例子,account_number是一个VARCHAR2类型,在account_number字段上有索引。下面的语句将执行全表扫描。
  
  select bank_name,address,city,state,zip
  from  banks
  where account_number = 990354;
  Oracle可以自动把where子句变成to_number(account_number)=990354,这样就限制了索引的使用,改成下面的查询就可以使用索引:
  select bank_name,address,city,state,zip
  from  banks
  where account_number ='990354';
  
  特别注意:不匹配的数据类型之间比较会让Oracle自动限制索引的使用,即便对这个查询执行Explain Plan也不能让您明白为什么做了一        次“全表扫描”。