sql进阶
-
- 一、table access full(多块读)
- 二、table access by user rowid(单块读)
- 三、table access by rowid range(多块读)
- 四、table access by index rowid(单块读)
- 五、index unique scan(单块读)
- 六、index range scan(单块读)
- 七、index skip scan(单块读)
- 八、index full scan(单块读)
- 九、index fast full scan(多块读)
- 十、index full scan(min/max)(单块读)
- 十一、mat_view rewrite access full(多块读)
一、table access full(多块读)
- 全表扫描,一般情况下多块读,hint:FULL(表名/别名)
- 我们知道,oracle的最小的存储单位是块(block),物理上连续的块组成了区(extent),区又组成了段(segment),非分区表的情况下,如果表没有clob/blob字段,一个表就是一个段,全表扫描实际上就是扫描区,区中又是物理上连续的块,所以可以多块读
二、table access by user rowid(单块读)
- 表示直接用rowid获取数据,单块读
- 该访问路径是Oracle中所有访问路径中最好的
- 直接根据rowid查询即可
三、table access by rowid range(多块读)
显而易见,表示用rowid进行范围扫描,多块读,因为一个块中的rowid是连续的,同一个extent(区)的rowid也是连续的,所以可以多块读