优化器模式:all_rows , first_rows
数据访问路径: 基于表的数据访问, 基于索引的数据访问
表关联的方式:NL , MJ , HJ
使用hints尽量避免在开发中使用。一般在dba层面去使用。一般也只加优化器模式,其它的
hints最好不用。
全表扫描 :
select /*+ full(t) */ from t where object_id= 100 ;
如果全表扫描,消耗的一致性读会很多。如果 用索引,会消耗很少。
index的使用
select /*+ index(t idx_t) */ * from t where object_id>10 ;
noindex的使用
select /*+ no_index(t idx_t) */ count(object_id) from t ;
FFS(fast full scan)扫描
select count(object_id) from t ; 此时会按索引来扫描,速度很快。
而如果使用 select /*+ full(t) */ count(*) from t ; 则会使用全表扫描。
index range scan 适用于范围很少的扫描
index fast scan 适用于索引的统计。
表的关联的hints
NL: /*+use_nl*/ Nested loop joins
eg: select /*+use_nl*/ t.* from t,t1 where t.object_id=t1.object_id ;
NL的使用场景 :
外表比较小,内表的关联字段上有索引,索引的键值不应该重复率很高。
HJ的使用场景 :
一个大表,一个小表的关联 ,表上没有索引,返回结果集比较大。
数据访问路径: 基于表的数据访问, 基于索引的数据访问
表关联的方式:NL , MJ , HJ
使用hints尽量避免在开发中使用。一般在dba层面去使用。一般也只加优化器模式,其它的
hints最好不用。
全表扫描 :
select /*+ full(t) */ from t where object_id= 100 ;
如果全表扫描,消耗的一致性读会很多。如果 用索引,会消耗很少。
index的使用
select /*+ index(t idx_t) */ * from t where object_id>10 ;
noindex的使用
select /*+ no_index(t idx_t) */ count(object_id) from t ;
FFS(fast full scan)扫描
select count(object_id) from t ; 此时会按索引来扫描,速度很快。
而如果使用 select /*+ full(t) */ count(*) from t ; 则会使用全表扫描。
index range scan 适用于范围很少的扫描
index fast scan 适用于索引的统计。
表的关联的hints
NL: /*+use_nl*/ Nested loop joins
eg: select /*+use_nl*/ t.* from t,t1 where t.object_id=t1.object_id ;
NL的使用场景 :
外表比较小,内表的关联字段上有索引,索引的键值不应该重复率很高。
HJ的使用场景 :
一个大表,一个小表的关联 ,表上没有索引,返回结果集比较大。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29196873/viewspace-1138173/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29196873/viewspace-1138173/