全表扫描是Oracle中的一种数据访问方式,用于读取表中所有行并检查WHERE条件。Oracle按顺序读取分配给表的每个数据块,直到表的最高水线(HWM)。通过多块读操作(db_block_multiblock_read_count参数设置),可以减少I/O次数,提高系统吞吐量。全表扫描时,每个数据块仅被读取一次。注意,删除操作不影响HWM值,因此需使用truncate命令重置HWM。自Oracle 10G后,可手动收缩HWM值。全表扫描数据被放入LRU列表的尾部,以便快速交换出内存。建议在取出数据量较大(超过总量的5%至10%)或使用并行查询功能时使用全表扫描。示例:SQL> explain plan for select * from dual; Query Plan ----- SELECT STATEMENT [CHOOSE] Cost= TABLE ACCESS FULL DUAL