表扫描

表扫描是可以对表执行的最简单的操作。 它按顺序处理表中的所有行,以确定它们是否满足查询中指定的选择标准。 它以最大限度提高表的 I/O 吞吐量的方式执行此处理。

表扫描操作请求大型 I/O 将尽可能多的行引入主内存以进行处理。 它还以异步方式预访存数据,以确保表扫描操作从不等待将行分页到内存中。 但是,表扫描有一个缺点,它必须处理所有行才能满足查询。 如果不需要同步执行 I/O ,那么扫描操作本身是有效的。

表 1. 表扫描属性
数据访问方法 表扫描
描述 从表中读取所有行,并将选择标准应用于表中的每个行。 表中的行按无保证的顺序处理,但通常按顺序处理。
优势
  • 通过异步预取行来最小化页面 I/O 操作,因为将按顺序扫描这些页面
  • 请求更大的 I/O 以高效访存数据
注意事项
  • 将检查表中的所有行,而不考虑查询的选择性
  • 标记为已删除的行仍会分页到内存中,即使未选择任何行也是如此。 您可以重组表以除去已删除的行。
可能已使用
  • 期望从表返回许多行时
  • 当扫描所需的大型 I/O 数少于探测表所需的小型 I/O 数时
示例 SQL 语句
SELECT * FROM Employee
WHERE WorkDept BETWEEN 'A01'AND 'E01'
OPTIMIZE FOR ALL ROWS
指示使用的数据库监视器和计划高速缓存记录 QQRID 3000-表扫描
已启用 SMP 并行
也称为 表扫描,预装入
"可视说明" 图标
表扫描图标