全表スキャン
全表スキャン (英: full table scan)、または順次スキャン (英: sequential scan)は、データベースで行われるテーブルの読み取り方法であり、テーブルの各行が順次(シリアル)順序で読み取られ、検出された列の条件が必要とされているものかどうかをチェックする。 全表スキャンは通常、複数のシークとディスクからメモリへの転送など、大量の読み取り操作が必要であり、通常とても遅い操作となる。
長所:
読み取り時間のコストは予測可能。データベースは毎回テーブルのすべての行をスキャンするため。
テーブルがデータベースブロックバッファの2%未満の場合、全表スキャンの方が高速となる。
短所:
全表スキャンは、インデックスがないか、SQLでインデックスが使用されていない場合に発生する。また、全表スキャンの結果は通常、インデックステーブルのスキャンよりも遅くなる。テーブルが大きいほど、データが返ってくるまでの時間が遅くなる。
不必要な全表スキャンは、データベース全体のプロセス負担を伴う大量の不必要なI/Oにつながる。