0

数十万行、たとえば 20 列の大きなテーブルがあります。列の 1 つはタイプnvarchar(30)です。これを に変更するとnvarchar(256)、すべてではなくいくつかの行にさらにデータを格納する必要があるため、次のようになります。

  • これにより、データベースのディスク割り当てがすぐに変更されますか?
  • ディスクの割り当ては、セルの値が 30 を超えるかどうかに依存しますか?
  • セルは個別に割り当てられていますか。つまり、サイズが 30 を超える単純な行が 1 行あると、他の行のディスク割り当てサイズに影響しますか?

これをグーグルで検索しようとしましたが、との比較しか見つかりませんでしnvarchar(n)nvarchar(MAX)。私の知る限り、私のシナリオには行外ストレージが含まれていないことに注意してください。

4

1 に答える 1

2

これはメタデータのみの変更である必要があります。行は、実際に必要な可変長データのストレージのみを消費します。そのため、nvarchar(256)実際に 30 文字を超える行が含まれていない列は、列とまったく同じディスク領域を消費しnvarchar(30)ます。

于 2013-11-13T08:20:18.817 に答える