sql >> データベース >  >> RDS >> Sqlserver

varchar(max) どこでも?

    VARCHAR(MAX) を使用する 基本的に、SQL Server に「このフィールドの値を最適な方法で格納する」ように指示している場合、SQL Server は値を通常の VARCHAR として格納するかどうかを選択します。 またはLOB(ラージオブジェクト)として。 一般に、格納された値が 8,000 バイト未満の場合、SQL Server は値を通常の VARCHAR として扱います。 入力してください。

    格納された値が大きすぎる場合、他の LOB タイプ (textntext画像 ) - これが発生した場合、追加のページに格納されたデータを読み取るために追加のページ読み取りが必要になります (つまり、パフォーマンスが大幅に低下します)。ただし、これは、格納された値が大きすぎる場合にのみ発生します .

    実際、SQL Server 2008 以降では、固定長のデータ型 (例:VARCHAR(3,000)) でも、データが追加のページにオーバーフローする可能性があります。 )、ただし、これらのページは行オーバーフロー データ ページと呼ばれ、扱いが少し異なります。

    短いバージョン: ストレージの観点からは、VARCHAR(MAX) を使用することのデメリットはありません VARCHAR(N)以上 いくつかの N について .

    (これは、他の可変長フィールド タイプ NVARCHAR にも適用されることに注意してください。 および VARBINARY )

    参考までに - VARCHAR(MAX) にインデックスを作成できません



    1. 1日に複数のレコードを選択するにはどうすればよいですか?

    2. SQLDeveloperで[表示]->[DBAメニュー]を開くことができません(Oracle 12C Standard Editionがインストールされています)

    3. localdateのSpringデータクエリが間違ったエントリを返す-マイナス1日

    4. IDのリストをMySQLストアドプロシージャに渡す方法は?