Der er ingen ydeevne eller operationelle fordele. Siden SQL 2005 er LOB-typerne allerede gemt for dig af motoren i en separat tildelingsenhed, et separat b-træ. Hvis du studerer Tabel- og indeksorganisation af SQL Server vil du se, at hver partition har op til 3 allokeringsenheder:data, LOB og række-overløb:
(kilde:s-msft.com
)
Et LOB-felt (varchar(max), nvarchar(max), varbinary(max), XML, CLR UDT'er samt de forældede typer tekst, ntext og image) vil i selve dataposten, i det klyngede indeks, kun have en meget lille fodaftryk:en pegepind til LOB-allokeringsenheden, se Anatomy of a Record .
Ved at gemme en LOB eksplicit i en separat tabel vinder du absolut intet . Du tilføjer bare unødvendig kompleksitet, da tidligere atomopdateringer nu skal distribuere sig selv i to separate tabeller, hvilket komplicerer applikationen og applikationstransaktionsstrukturen.
Hvis LOB-indholdet er en hel fil, bør du måske overveje at opgradere til SQL 2008 og bruge FILESTREAM .