0

クラスター化インデックスと列ストア インデックスについていくつか質問があります。クラスター化インデックスでは、特定の列のデータの物理的な順序が変更され、バイナリ ツリーのリーフ ノードに格納されることがわかっています。したがって、私の質問は次のとおりです
。列Aのインデックス、その列Aのデータは実際の保管場所から削除され、バイナリツリーの葉に追加されますか? それとも、元の保管場所でデータを再配置しているだけですか?

2) 列ストア インデックスはどうですか? ここでも、特定の列のデータが実際の格納場所から削除され、別の別のファイル セグメントに読み込まれますか?

3) 上記の 2 つの質問から、データが元の場所から移動している場合、たとえば、列 colA、colB を持つ tableA があり、colA に上記の 2 つのインデックスのいずれかを作成すると、元の場所には colB データのみが含まれますか? そしてcolAは他の場所にありますか?

4

1 に答える 1

2

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

2) 列ストアの非クラスター化インデックスは、テーブルのセカンダリ インデックスです。セカンダリ (非クラスター化) インデックスと同様に、非クラスター化インデックスのすべての行は、テーブル ベース ヒープまたはクラスター化インデックスからのデータのコピーです。列ストア インデックスは B ツリーでもヒープでもなく、列指向のストレージ用に最適化された新しいタイプのデータ編成です。列指向ストレージが一般的にどのように機能するかを理解するには、C-Store の論文を読んでください。

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

于 2012-04-22T07:38:28.167 に答える