いくつかの列と、varbinaryである2つの最後の(null許容)列を含むテーブルがあります(実際には、これらはSQL 2008の地理タイプですが、このポストデータベースに依存しないようにします)。
私は約200K行で約500mbをヒットしました。varbinaryが問題です-そして私はデータが必要です。
だから、私が次のことをすると悪いのではないかと思っていました:-
- 別のファイルグループを作成します:SpatialData.mdf
- その新しいファイルグループに割り当てられた新しいテーブルを作成します。
- すべての空間データ(読み取り:最後の2つのフィールド)を元のテーブルから新しいテーブルに移動します。新しいテーブルには、元のテーブルに対する外部キーがあります。
- 両方のテーブルを表すビューを作成します。
これで、関係が次のようになるため、ビューは左外部結合になります。新しいテーブルは、元のテーブルに対して0行または1行の関係になります。
例えば。
元のテーブル
FooId INT PK NOT NULL IDENTITY
Blah VARCHAR(..) NOT NULL
Boo WHATEVER NOT NULL
新しいテーブル
FooID PK FK NOT NULL
Spatial_A VARBINARY(MAX)/GEOGRAPHY
Spatial_B VARBINARY(MAX)/GEOGRAPHY
これが悪いかどうかを知りたい理由は、ビューと、ビューが空間テーブルでどのように結合を行っているかによるものです。ビューをよく使用します。現在、元のテーブルに対してクエリを実行しています(新しいテーブルがまだ存在しないため)。この結合とPK/FK関係を追加することにより、これはパフォーマンスに影響しますか?
なぜデータを分割するのですか?ライブDBを開発サーバーに時々ダウンロードする必要があります。これらの2つの空間フィールドについてはあまり気にしないので、それらがないことは問題ありません。そのため、ダウンロードするデータベースのサイズははるかに小さくなります。
考え?