从图像到Varbinary(最大)

使用SQL 2005

我有一个5列的表

ID - int 
Param - smallint 
Data1 - image 
Data2 - image
Data3 - image

图像大小可以低至20字节,可以大到1MB(是的,大于8k)。 图像的大小不是恒定的,因为它保存压缩数据。 大部分日期BLOB约为512B到1.5kB。 Data1,Data2和Data3之间存在逻辑关系,这就是它们存储在一起的原因。 在拥有3年历史数据的数据库上,有6600 条记录。

努力改善数据存储并为未来的SQL版本准备好系统。 我想将图像列更改为varbinary(MAX)数据类型。 FILESTREAM将是另一种可能性,但我不确定它会更有效地保存大约2亿个文件。

将图像更改为varbinary(max)之后,我注意到表的整体大小缩小了(仅稍微),但每次添加/删除数据时,都需要更长的时间才能完成此过程。

据我所知,如果一个varbinary(max)值小于8k,它将被放置在表内,而如果它大于8k,它将被放置在其他地方,并且指向该数据的指针被存储在表中。 使用图像时,即使图像数据小于8k,也会存储指针。

一般来说,每天添加和删除20000条记录,所以没有太多数据的添加/删除,并且通常在10-200个连续记录中进行单个选择。

有没有一种方法可以将varbinary(max)数据设置为永久存储(不管大小),与存储图像的方式相同?


您可以使用sp_tableoption将“大值类型”设置为“不在行”

一些额外的信息

链接地址: http://www.djcxy.com/p/51927.html

上一篇: From Image to Varbinary(max)

下一篇: SAP .NET Connector