をナビゲートするために使用されていますクラスタード・インデックスを持たないヒープと呼ばれます。これは未整理の(順序付けられていない)一連のページです。各ページは、前のページと次のページ(二重にリンクされたリスト)を指しています。
今、あなたがそのテーブルのためのクラスタ化インデックスを作成する想像:
すべてのページは現在、クラスタ用に指定されたキーの順序で格納されている - >これらは、リーフ・レベルのページで、すべての行の実際のデータが含まれています。これらは引き続き二重リンクリストを使用します。彼らはバランスの取れたツリーを形成するように
また、クラスタ化インデックスの構造は、上位レベルでの余分なページを伴います(複数のレベルである可能性があり) - >これらは分岐ページとルートページです。クラスター化されたキーから派生したデータは、下位レベルのページへのポインターとして使用されます。
この形成は、その結果、SQLエンジンは、(呼び出さシーク)は、例えば、容易にデータを見つけるために必要なページを見つけることができていますクラスタキーと一致する述語を使用するクエリを実行すると、正確なデータを効率的に見つけることができます。
キーが一致するか、またはSQLがそのテーブルを知っていれば十分に小さい(または、それがほぼ全テーブルのデータを返している知っている場合でも)、それは上位レベルのページを使用する必要はありませんしていない場合。リーフレベルのページに直接移動して、すべての行をスキャンし、一致するレコードを見つけることができます。前と次のページを指すように二重リンクリストを覚えておいてください。
ボーナス:それは求めまたはSQLは、それが求めるよりも、スキャンする方が効率的だと思ったを使用することができなかったので、あなたはWHERE句を指定した場合にもインデックススキャンがある可能性があります。
これが役立つかどうか教えてください。