避免全表扫描

 

在应用的程序设计中,除了一些必要的情况下,如月报数据的统计。打印所有清单等可以允许使用全表扫描外,一般都尽量避免涉及全表扫描。全表扫描就是指不加任何条件的查询语句。下面情况可以Oracle就使用全表扫描:

 

1.所查询的表没有索引;

2.需要返回所有的行;

3.对索引主列有条件限制,但是使用了函数,则Oracle 使用全表扫描,如:

where  upper(city)=’TOKYO’; 

这样的语句不会使用索引方法。所以就只能全表扫描。

4.带有 is null is not null != 等子句。如:

. . . where  city is  null ;

. . . where city is  not  null;

. . . where  city != ‘TOKYO’;

5.带like  并使用’%’这样的语句就使用全表扫描;

posted @ 2008-05-16 16:00  行进中开火  阅读(1999)  评论(0编辑  收藏  举报