单独的表中的SQL Server varbinary(max)和varchar(max)数据

SQL*_*ner 6 sql-server

使用带有SP2的SQL Server 2005标准版

我需要设计一个表格,我将存储一个文本文件(~200KB)以及文件名,描述和日期时间.

我们应该设计一个表,其中varchar(max)和varbinary(max)数据应该存储在一个单独的表中,还是LOB数据类型的列应该是主表的一部分?

根据这个线程 在单独的1-1表中使用varbinary字段有什么好处?

没有我在某种程度上同意的性能或运营效益,但我可以看到两个好处

  1. 将它们存储在可分离的表中,该表可以存储在单独的文件组中
  2. 您无法在包含lob数据类型ONLINE的表上重建索引

任何建议,将不胜感激.

Rem*_*anu 7

我会建议反对分离.它使设计复杂化很少或没有任何好处.您可能知道,SQL Server已将LOB存储在单独的分配单元上,如表和索引组织中所述.

正如Mikael已经指出的那样,您可以通过在CREATE TABLE语句中适当指定所需的文件组来明确解决您的第一个问题(LOB数据的单独文件组分配).

您的第二个问题不再是SQL Server 2012的问题,请参阅包含LOB列的索引的在线索引操作.甚至在SQL Server 2012之前,您可以使用LOB重新组织索引而不会出现问题(并且REORGANIZE在线).由于一个完整的索引重建是一个非常昂贵的操作(在线重建必须在表/索引级上完成,没有分区的在线重建选项),你确定你要设计复杂适应的东西是,一方面,很少需要,另一方面,在升级到SQL 2012时可用吗?