サーチ…


スキャン対シーク

実行計画を表示すると、SQL ServerがSeekまたはScanを実行することを決定したことがあります。

シークは、SQL Serverが必要な場所を知っていて、特定のアイテムだけを取得する場合に発生します。これは、通常where name = 'Foo'ようなクエリーに入れたときに良いフィルターが使用されたときに発生します。

スキャンとは、SQL Serverが必要とするすべてのデータがどこにあるかを正確に把握していない場合、または十分なデータが選択されている場合にスキャンがシークよりも効率的であると判断した場合です。

シークは通常、データのサブセクションを取得するだけなので高速ですが、スキャンはデータの大部分を選択しています。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow