私はインデックスについて理解しようとしており、この msdn記事から始めました。それは言います、
テーブルがヒープとして格納される場合、個々の行は、ファイル番号、データ ページ番号、およびページ上のスロットで構成される行識別子 (RID) を参照することによって識別されます。
「ファイル番号、データページ番号、ページ上のスロット」が何を意味するのかわかりません
誰でも明確にできますか?
私はインデックスについて理解しようとしており、この msdn記事から始めました。それは言います、
テーブルがヒープとして格納される場合、個々の行は、ファイル番号、データ ページ番号、およびページ上のスロットで構成される行識別子 (RID) を参照することによって識別されます。
「ファイル番号、データページ番号、ページ上のスロット」が何を意味するのかわかりません
誰でも明確にできますか?
クラスター化されたテーブルを使用する場合、インデックス レコードは、テーブル レコードのクラスター化されたキー (論理識別子) を格納します。
たとえば、クラスタ化されたプライマリ テーブルを次のように使用するとします。
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 は各ページのヘッダーに格納されます)