全表扫描是Oracle访问数据库表是较为常见的访问方式之一。很多朋友一看到SQL语句执行计划中的全表扫描,要考虑对其进行修理一番。全表扫描的存在,的确存在可能优化的余地。但事实上很多时候全表扫描也并非是低效的,完全要看不同的情形与场合,任一方式都是有利有弊的,也是具体情况要具体分析。本文描述了什么是全表扫描以及何时发生全表扫描,何时全表扫描才低效。 1、什么是全表扫描? 全表扫描是扫表表中所有的行,实际上是扫描表中所有的数据块,因为Oracle中小的存储单位是Oracle block。 扫描所有的数据块包括高水位线以内的数据块,即使是空数据块在没有被释放的情形下也会被扫