Oracle认证:Oracle避免全表扫描方式
不知道各位同学提起Oracle认证考试来还头疼吗?还觉得没有什么复习头绪吗?下面小编就为大家整理了一些Oracle认证复习备考资料。希望大家可以从中学习答题方法,让自己的得到进步!
1.对返回的行无任何限定条件,即没有where 子句
2.未对数据表与任何索引主列相对应的行限定条件
例如:在City-State-Zip列创建了三列复合索引,那么仅对State列限定条件不能使用这个索引,因为State不是索引的主列。
3.对索引的主列有限定条件,但是在条件表达式里使用以下表达式则会使索引失效,造成全表扫描:
(1)where子句中对字段进行函数、表达式操作,这将导致引擎放弃使用索引而进行全表扫描,
Demo:
where upper(city)='TokYo' 或 City || 'X' like 'TOKYO%',
select id from t where num/2=100 应改为: select id from t where num=100*2
select * from emp where to_char(hire_date,'yyyymmdd')='20080411'(不使用)
select * from emp where hire_date = to_char('20080411','yyyymmdd')(使用)
(2)查询字段is null时索引失效,引起全表扫描。
where City is null 或 ,where City is not null,