Er is geen prestatie of operationeel voordeel. Sinds SQL 2005 zijn de LOB-types al voor u opgeslagen door de engine in een aparte allocatie-eenheid, een aparte b-tree. Als je de Tabel- en indexorganisatie van SQL Server ziet u dat elke partitie maximaal 3 toewijzingseenheden heeft:data, LOB en row-overflow:
(bron:s-msft.com
)
Een LOB-veld (varchar(max), nvarchar(max), varbinary(max), XML, CLR UDT's evenals de verouderde typen tekst, ntext en afbeelding) zal in het gegevensrecord zelf, in de geclusterde index, alleen een zeer kleine footprint:een verwijzing naar de LOB-toewijzingseenheid, zie Anatomie van een record .
Door een LOB expliciet in een aparte tabel op te slaan wint u absoluut niets . Je voegt gewoon onnodige complexiteit toe, aangezien eerdere atomaire updates zichzelf nu moeten distribueren in twee aparte tabellen, wat de applicatie en de applicatietransactiestructuur compliceert.
Als de LOB-inhoud een volledig bestand is, kunt u misschien overwegen om te upgraden naar SQL 2008 en FILESTREAM .