1. ホーム
  2. sql

[解決済み] 常にnvarchar(MAX)を使用することにデメリットはありますか?

2022-03-15 22:05:41

質問

SQL Server 2005では、すべての文字フィールドをnvarchar(255)などのように明示的に長さを指定するのではなく、nvarchar(MAX)とすることに何か不都合はありますか? データベースレベルでフィールド長を制限できない、という明白な問題は別にして)。

どのように解決するのですか?

同じ質問がMSDN Forumsにもありました。

元記事より(そちらの方が情報が多い)。

<ブロッククオート

VARCHAR(N)カラムにデータを格納する場合、物理的には同じように値が格納されます。しかし、VARCHAR(MAX)カラムに格納すると、画面の裏側では、データはTEXT値として扱われることになります。そのため、VARCHAR(MAX)の値を扱う際には、いくつかの追加処理が必要になります。(サイズが8000を超える場合のみ)

VARCHAR(MAX) または NVARCHAR(MAX) は、「大きな値の型」とみなされます。大きな値型は通常、'out of row'に格納される。つまり、データ行は「大きな値」が格納されている別の場所へのポインタを持つことになる...。