以前写过一篇博客,调侃了一下全表扫,今天继续,感觉对全表扫的认识还是不够:侃侃全表扫
㈠ 全表扫描与HWM
在Table Access Full中,数据库引擎顺次读取表在HWM下的所有数据块
全表扫描可能是不够理想,特别是表包含大量空的或者接近空的块时
很明显,一个块必须先读才能知道它是否包含数据
当表的删除操作比插入操作多的时候,最容易导致表包含许多稀疏的数据块
所以,逻辑读依赖于块的数量而非行数
测试如下:
hr@ORCL> select /*+ full(t) */ * from t where object_id=51;
Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873
--------------------------------------------------------------------------
| Id | Ope