私は数千万行のデータベーステーブルを扱っており(時間の経過とともに数億行になる可能性があります)、行数が増えてもパフォーマンスを安定させるためにデータベースパーティショニングを実装することを検討しています。これが私がやりたいことです:
動物を保管するテーブルがあるとしましょう。フィールドの1つは、AnimalType(つまり、Bird / Fish / Cat / Dog)です。クエリの99%は1つのAnimalTypeにのみ関連し、テーブルにはほぼ同じ量のAnimalType(つまり、1000匹の魚、1000羽の鳥、1000匹の犬)があるため、各AnimalTypeを個別のパーティションにします。パーティションは素晴らしく、均等に分散している必要があります。ただし、動物の種類はたくさんあるので、AnimalTypeごとに数百のパーティションを手動で作成したくないので、新しいAnimalTypeを入力するたびに、新しいパーティションを作成する必要があります。
したがって、私が望むのは、SQLServerにAnimalTypeに基づいてパーティションを作成するように指示する方法です。AnimalType用のパーティションがすでに存在する場合は、そのパーティションを使用します。存在しない場合、SQLServerは自動的に新しいパーティションを作成します。
簡単そうに聞こえますが、これを行う方法を見つけることができないようです。出来ますか?
あるいは、テーブルへのアクセス速度を素晴らしく高速に保つための他の方法は何ですか?古いレコードをHistoryスタイルのテーブルに移動するなど、手動でデータをより多くのテーブルに移動するだけのことは避けたいと思います。クエリで完全なデータセットのデータが必要になる可能性があるため、実際にはそうはなりません。ヘルプ。私はすでにいくつかの基本的なインデックスを持っており、これは非常に役立ちます。