私はおそらく、巨大なテーブル(数十億行)でパーティショニングを実装しようとしています。SQL Server 2008 r2でmodパーティショニングを実装する方法は?
各テーブル行には、特定のデバイスに関するステータスがあり、分単位で挿入されます。したがって、デバイスあたり1日あたり1440(24 x 60)行が存在します。各デバイスには固有のID(DeviceID)があります。
私はDeviceID MOD {TheNumberOfPartitionsThatIWant}を使用してパーティショニングについて考えましたが、TheNumberOfPartitionsThatIWantが250であることは良い妥協であると思います。この戦略を使用すると、パーティション全体にデバイスを均等に分散することができます。また、特定のデバイスをクエリする場合、クエリエンジンは250パーティションすべてではなく、1つのパーティションに触れるだけで済みます。
問題は、この列を使用してパーティション・スキーマで表を定義できるように、行が属しているパーティションを示すために、表に追加の列を追加する必要があるということです。この列をそれほど単純な表現にするのではなく、パーティションスキーマに(DeviceID MOD 250)を供給する方がはるかに良いでしょう。そのための回避策はありますか?
私はあなたの前の[質問](http://stackoverflow.com/questions/4249073/partitioning-for-query-performance-in-sql-server-2008)にあなたが持っているコメントを見ました** 2 **ドライブ。 2つのパーティションを使用する..いいえ?あなたがこれらの種類のボリュームを処理したい場合は、ハードウェア上で*まったく*縮めることはありません。 – gbn
これは単なる経験でした。最終的な解決策では、おそらくDASまたはSAN構成を使用します。 – gsb
パーティショニング戦略の目的は何ですか?クエリでパーティションを削除したり、高速データロードをサポートしたり、古いデータを選択的にアーカイブすることは可能ですか? DeviceIDに基づいて計算された列をパーティション化して250の範囲を作成することはできますが、すべてのパーティションが毎日更新されることになるので、それは分かりやすいパーティション化戦略になります。また、1日あたりのMB/GB単位のテーブルの予想サイズはどれくらいですか? – sqlvogel