2
SQL Server 2008を使用していて、インデックス付きビューを使用していると検索が始まっています。基本的ではない。私は次のようなテーブルを...持っている場合Indexed ViewがSqlServerの背後で何をしているのか分かりません
ので、
**ParentTable
ParentId INT PK IDENTITY
Name VARCHAR(MAX)
**ChildTable
ChildId INT PK IDENTITY
ParentId INT (FK to the table above)
Name VARCHAR(MAX)
Boundary GEOGRAPHY
CentrePoint GEOGRAPHY
CentrePointFlattened GEOMETRY
だから、親テーブルの行ごとに、それは多くの子供たちにゼロを持つことができます。
最初に、子のインデックスビューを作成すると、ParentIdフィールドにnull値を設定できる場合は動作しません。だから私はそれを必要とする必要があります。
今質問があります。
私は、親テーブルに子テーブルの内側join'dのインデックスビュー(私はテーブルのいずれかからフィールドのいくつかをインデックス化しています注意してください)...今
(pseduo sql code)
ParentId INT
Name VARCHAR(MAX) AS ParentName
ChildId INT
Name VARCHAR(MAX) as ChildName
Boundary GEOGRAPHY
を持っていますこれらの5つのフィールドのデータは、別の場所にシリアル化/コピーされました?またはインデックスビューは、そのテーブルのデータであるインデックスIDだけを作成しますか?
しかし、そのテーブルの内容は何ですか?元のテーブルと同じもの?だから私は地理データの2つのコピーを持っていますか?またはこの2番目の_invisible_テーブルだけの数字は、さまざまな列などのインデックスですか? –
"ビューの照会の結果"(ビューに含まれている列)は、索引に保管されます。すべての列データを格納するテーブルとまったく同じです。元のテーブル行へのポインタは保存されません(ビュー内のデータとバッキングテーブルの間には必ずしも1対1の関係がありません。結合や計算されたものを考えてください) –
神聖なmolly!私はなぜ私のDBのサイズは...うーん、大規模になっている説明するかもしれない:P –