0

テーブルには5つの列があり、3つの列はintデータ型であり、他の2つの列には約5MBから10MBの文字列データが格納されると予想されます。

Table
------ 
ID int 
ItemValue int 
Grade int 
PrimaryDesc nvarchar(max) -- will hold big data 
SecondaryDesc nvarchar(max) -- will hold big data

さて、私の質問は、テーブルをそのままにして成長させても大丈夫ですか?データをフェッチするときは、ADO.Netを介して必要なフィールド(データ)のみをフェッチします(つまり、ユーザーが短いデータのみを必要とする場合は、ID、ItemValue、およびGrade列の値がフェッチされ、ビッグデータ列は詳細ビューがユーザーからの要求)

1つのテーブルにすべての列があると予想されるパフォーマンスの問題はありますか?PrimaryDescとSecondaryDescを別のテーブルに移動し、その主キーを元のテーブルに保存することは、何らかの形で役立つと思いますか?

前もって感謝します。

4

1 に答える 1

0

最後の2列を別のテーブルに移動しても、パフォーマンスが向上するとは思いません。ID、ItemValueなど、より頻繁にアクセスする列に適切なインデックスがある限り、パフォーマンスの問題は発生しません。

したがって、テーブル構造をそのままにしてクエリを実行することをお勧めしますが、適切なインデックスがあることを確認してください。

IDが主キーになる可能性があります(クラスター化されたinddex)ItemValue-クラスター化されていないグレード-クラスター化されていない

これは1つのシナリオのみを対象としています。テーブルのクエリ方法に基づいて、複合インデックスを作成できる場合もあります。

于 2012-11-26T10:27:30.903 に答える