2012-04-22 17 views
0

クラスタ化インデックスとカラムストアインデックスに関する質問はほとんどありません。クラスタ化インデックスでは、特定のカラムのデータの物理的順序が変わり、バイナリツリーのリーフノードに格納されています。私の質問は次のとおりです:
1)columnAにクラスタードインデックスを作成すると、そのcolumnAのデータは実際の文字列の場所から削除され、バイナリーツリーリーフに追加されますか?または元の保管場所にデータを並べ替えるだけですか?クラスタ化とカラムストアのインデックスストレージの比較

2)カラムストアインデックスについては、ここで特定のカラムのデータも実際のストレージロケーションから削除され、別の別のファイルセグメントにロードされますか?

3)上記の2つの質問から、データが元の場所から移動している場合、たとえば、colA、colBおよび を持つtableAがあります。 colBデータのみが含まれていますか? colAは他の場所にありますか?

答えて

2

1)クラスタ化インデックスを作成すると、テーブルはクラスタ化インデックスとして再構築されます。 「元のストレージ」はなく、クラスタ化インデックスはテーブルであり、テーブルはクラスタ化インデックスです。クラスタード・インデックスは、B-tree構造体として編成されています(バイナリ・ツリーと混同しないでください)。

2)列ストア非クラスタ化インデックスは、テーブルの2次インデックスです。任意のセカンダリ(非クラスタ化)インデックスと同様、非クラスタ化インデックスの各行は、テーブルベースヒープまたはクラスタ化インデックスからのデータのコピーです。列ストアの索引は、Bツリーでもヒープでもなく、列指向の記憶域に最適化された新しいタイプのデータ構成です。列指向のストレージがどのように機能するかを理解するには、C-Store paperを読んでください。

3)いいえ。XML、空間および列ストアなどの特殊インデックスを含む任意の性質の非クラスター化インデックスを追加しても、テーブルベースヒープまたはクラスタードインデックスからデータを削除することはありません。非クラスタ化インデックスには常にデータのコピーが含まれます。非クラスタ化された列ストアインデックスの追加は、テーブルベースのヒープまたはクラスタードインデックスの行と列を変更しません(実際のストレージと呼ぶものと思われます)。

+0

こんにちは、ありがとう... – NikRED

関連する問題