有关索引的介绍,参见:
http://tech.tom.com/Archive/2001/12/21-26522.html

解决方案 »

  1.   

    在查询时,可以在sql/plus中 set autotrace on来跟踪sql语句执行效率,包括索引的
    使用情况
      

  2.   

    能解释一下建立index能提高查询效率的原因吗?
      

  3.   

    只是在where条件里查询有index的列时才会对查询效率有提高,当然,在表很大的情况下,这种提高的幅度是很可观的。至于原因,举个例子来说,就像人查字典,是一页一页翻快呢还是根据目录查到页数快,建立的索引里面包括选定字段的信息,以某种规律排列,同时有指针指向存放实际数据的记录。
      

  4.   

    index应该是数据结构里面的B+树
      

  5.   

    另外,还有一种位图索引(BITMAP INDEX),用来提高表中某个列拥有的值的种类很少(比如性别的列)时的查询效率。一般的B+树索引不适用于这一类的列。
      

  6.   

    尽量避免在WHERE子句中使用如下条件,因在这些情况下不使用索引。
    1. NOT IN ;
    2. NOT BETWEEN;
    3. LIKE,且首字母为“%”;
    4. <>;
    5. IS NULL/IS NOT NULL ;
    6. 在查询列使用函数和表达式;
    在8I中,多字段的组合索引(A,B,C),select * from ?where B='33',则索引不会用。
      

  7.   

    如果要取出来的数据很多,那么有时用INDEX反而会降低效率,因为用index的时候,oracle不能一次读如多个记录