2

私はインデックスについて理解しようとしており、この msdn記事から始めました。それは言います、

テーブルがヒープとして格納される場合、個々の行は、ファイル番号、データ ページ番号、およびページ上のスロットで構成される行識別子 (RID) を参照することによって識別されます。

「ファイル番号、データページ番号、ページ上のスロット」が何を意味するのかわかりません

誰でも明確にできますか?

4

2 に答える 2

3

クラスター化されたテーブルを使用する場合、インデックス レコードは、テーブル レコードのクラスター化されたキー (論理識別子) を格納します。

たとえば、クラスタ化されたプライマリ テーブルを次のように使用するとします。

id   name
1    Jonh
2    Alice

にインデックスを作成するとname、インデックスはこれらのデータを格納します。

name   row_pointer
Alice  2
John   1

テーブルがヒープの場合、インデックスはテーブルへの物理ポインターを格納します。

name   row_pointer
Alice  <file C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db.mdf, page 1234, slot 2>
John   <file C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db.mdf, page 1234, slot 1>

(もちろん、これは実際のバイナリ形式ではよりコンパクトに見えます)

ファイルは自明、ページはファイル内の 8K ブロック、スロットはページ内のレコード番号 (レコード TOC は各ページのヘッダーに格納されます)

于 2013-05-21T09:27:12.090 に答える