2

多数のテーブルを持つ SQL Server 2008 R2 データベースがあります。これらのテーブルのうちの 2 つには大量のデータが含まれていVARBINARY(MAX)ますGEOGRAPHY。(なぜ 2 つのテーブルがあるのでしょうか? 興味がある場合は以下をお読みください***)

これらのテーブルのデータは、郵便番号の境界などの地理空間形状です。

ここで、最初の 70K 奇数行がDataType = 1 残りの 5mil 行です。DataType = 2

さて、テーブルデータを2つのファイルに分割することは可能ですか? したがって、すべての行DataType != 2が入りFile_ADataType = 2入りFile_Bますか?

このようにして、DB をバックアップするときに、File_B の追加をスキップできるので、ダウンロードが非常に小さくなりますか? これは可能ですか?


私はあなたが考えているかもしれないと思います->なぜそれらを2つの追加テーブルとして保持しないのですか? 主な理由は、コード内でデータが概念的に同じであるためです..たまたま、このモデル データのストレージを分割したいだけです。モデルに 1 つではなく 2 つの集約があると、モデルが本当に台無しになります。

***Entity Framework は を含むテーブルを好まないGEOGRAPHYため、 を に変換する新しいテーブルを作成し、GEOGRAPHYそれVARBINARYを EF にドロップする必要があります。

4

2 に答える 2

3

少しやり過ぎですが、各パーティションを個別のファイル グループにマップできるため、テーブルのパーティション分割を使用してこれを行うことができます。いくつかの注意事項:

  • テーブルのパーティショニングは、エンタープライズ (および開発者) エディションでのみ使用できます
  • クラスター化インデックスと同様に、取得できるのは 1 つだけなので、テーブルをこのようにパーティション分割する方法を確認してください。
  • これが「選択的なバックアップ」や、さらに重要なことに部分的な復元に対してどの程度うまく機能するかはわかりません。これを使用して本番環境に移行する前に、多くの奇妙な回復シナリオをテストする必要があります

これを行う昔ながらの方法は、分割ビューを設定することです。これにより、確かに 2 つのテーブルが得られますが、分割されたビューの "構造" はかなり堅固でかなり洗練されており、データが複数のバックアップ ファイルに分割されることを心配する必要はありません。

于 2011-01-12T23:48:40.507 に答える
0

data partitioningを調べてみるといいと思います。DataType 列などのキー値に基づいて、データを複数のファイル グループ、つまりファイルに分割できます。

データのパーティショニングもパフォーマンスの向上に役立ちます。したがって、それも必要な場合は、インデックスのパーティション スキームも確認できます。

于 2011-01-12T23:48:21.837 に答える