1. ホーム
  2. sql

[解決済み] SQL Server Plans : Index Scan と Index Seek の違いについて

2023-03-14 08:03:35

質問

SQL Server の実行計画において、Index Scan と Index Seek の違いは何ですか?

私はSQL Server 2005を使用しています。

どのように解決するのですか?

インデックススキャンとは、SQL サーバーがインデックス全体を読み取り、一致するものを探すことです。この作業にかかる時間は、インデックスのサイズに比例します。

インデックスシークとは、SQL サーバーがインデックスの B ツリー構造を使って、一致するレコードを直接探すことです ( http://mattfleming.com/node/192 を参照) - 時間は一致するレコードの数にのみ比例します。

  • 一般に、インデックス シークはインデックス スキャン (一致するレコードの数がレコードの総数よりもはるかに少ない場合) よりも望ましいです。なぜなら、インデックス シークにかかる時間は、テーブル内のレコードの総数に関係なく一定だからです。
  • しかし、特定の状況では、インデックススキャンがインデックスシークよりも高速になることがあることに注意してください (時には 著しく 通常、テーブルが非常に小さい場合や、レコードの大部分が述語と一致する場合です。