1

現在、SQL Server に移行する必要がある 7 つの Access DB にヒットしている Web サイトがあります。7 db の設計は非常に高速ですが、多くの理由で明らかに非常に貧弱です。

7 つのデータベースには、375 を超える一意のデータ フィールドがあり、そのすべてにデータが入力されています - 2% 未満が null です。いくつかのキーを除いて、7 の間でデータの重複がないため、正規化はおそらく問題になりません。高速になるように、テーブルを小さくしたかったのです。7 つのテーブルはすべて同じ数のレコードを持ち、325,000 であり、最大で約 400,000 になります。

これを SQL Server に移動する場合、7 つの一意のテーブルを保持するか、1 つに結合する必要がありますか? 私の理解 (現状では限られています) は、必要な列だけを戻すには、ストアド プロシージャを非常に厳しく管理する必要があるということでした。同様の質問が非常に多様であることを考えると、最善のアプローチについて「コンセンサス」に出くわすことはまだありません。

ありがとう。

4

1 に答える 1

2

それはアクセスパターンによって異なります。一度に複数のパーティションからデータにアクセスする必要があることがよくありますか? 次に、おそらくそれらを組み合わせる必要があります。

いずれにせよ、テーブルが 1 つしかない (1 対 1 の結合がない) 方が開発はおそらく簡単です。分割する理由が特にない場合は、結合してください。

注意: SQL Server には列制限があると思います。

インデックスを作成することで、列のサブセットを公開できます。各インデックスは、列の任意のサブセットを「含まれる」列として ID 列に設定されます。これにより、オプティマイザに選択が委ねられます。可能な限り最良の方法を選択します。インデックス間で結合することもできるため、そのようにして完全に勝利することができます。

推奨事項: テーブルを 1 つに結合し、以前に使用していたテーブルごとに 1 つのインデックスを作成します。

于 2012-06-11T20:55:55.067 に答える