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

別の 1-1 テーブルに varbinary フィールドを持つ利点は何ですか?

    パフォーマンスも操作上の利点もありません。 SQL 2005 以降、LOB タイプは すでに エンジンによって別のアロケーション ユニット、別の b ツリーに格納されます。 表と索引の構成 SQL Server のすべてのパーティションに、データ、LOB、および行オーバーフローの最大 3 つのアロケーション ユニットがあることがわかります。


    (ソース:s-msft.com )

    LOB フィールド (varchar(max)、nvarchar(max)、varbinary(max)、XML、CLR UDT、および廃止された型の text、ntext、および image) は、データ レコード自体、クラスター化インデックス内に、非常に小さなフットプリント:LOB アロケーション ユニットへのポインター。 /PAUL/post/Inside-the-Storage-Engine-Anatomy-of-a-record.aspx">レコードの構造 .

    LOB を別のテーブルに明示的に格納しても、何も得られません。 .以前のアトミックな更新は 2 つの別個のテーブルに分散する必要があり、アプリケーションとアプリケーションのトランザクション構造が複雑になるため、不要な複雑さが増すだけです。

    LOB コンテンツがファイル全体である場合は、SQL 2008 へのアップグレードと FILESTREAM .



    1. PostgreSQLの大きなテーブルで削除クエリを実行する最速の方法

    2. SQL-列の最大数を見つける方法は?

    3. アンパサンド(&)でのXMLエラー

    4. PDOStatement ::execute():SQLSTATE [HY093]:無効なパラメーター番号:バインドされた変数の数がトークンの数と一致しません