我在这里找不到确切答案;如果我错了,请纠正我。
是否有令人信服的理由将VARBINARY
用于预期中值大小为40KB的文档文件,极少数异常值可达到2MB(当有人上传扫描时)?
据Technet说:
[
FILESTREAM
适用于]存储的对象平均大于1 MB。
......在我的情况下,这将远非事实。
文件表本身会很小; 2000个文件的绝对限制。批量下载将限制为10个文件。
在这种情况下,FILESTREAM
和VARBINARY(MAX)
之间可能没有任何区别。在做出选择时,是否还有文件大小和批量下载等因素需要考虑?
答案 0 :(得分:4)
从绩效角度来看,您无需采用FILESTREAM
路线。
VARBINARY(MAX)
具有另一个可能的优势 - 应用程序可以直接访问它""使用SqlFileStream
。
答案 1 :(得分:1)
在SQL Server 2008中,如果将varbinary列定义为存储为文件流,则二进制数据将存储在由SQL Server引擎管理的特殊文件夹结构中。数据库中唯一保留的是指向文件的指针以及必需的GUID列,以便使用来自Win32客户端的文件流。 我想,它可以帮助您理解您的问题。