WEB开发网
开发学院数据库MSSQL Server SQL Server:存储图像和BLOB文件(一) 阅读

SQL Server:存储图像和BLOB文件(一)

 2008-04-14 09:54:26 来源:WEB开发网   
核心提示: 文件存储位置第一个需要解决的问题是要将这些电子宣传小册子存放在哪里,我们可以用一个应用程序来存储导向该文档的文件系统路径信息,SQL Server:存储图像和BLOB文件(一)(2),例如“e:saleswidgeta-picture.jpg”,将这些信息存放在va

文件存储位置

第一个需要解决的问题是要将这些电子宣传小册子存放在哪里。我们可以用一个应用程序来存储导向该文档的文件系统路径信息,例如“e:saleswidgeta-picture.jpg”,将这些信息存放在varchar类型的数据列里,而把实际的文档保留在文件系统;也可以将实际的图像文件直接放在一个二进制或图像类型的数据列里。回答下面几个重要问题将有助于确定最佳的选择方案:

· 性能:这些二进制对象对性能要求是不是很高,如视频流?如果是的话,保留在文件系统会比用二进制流文件存储要好。

· 大小:需要检索的二进制对象是不是很大?有没有超过1MB?如果对象很大,那么用文件系统来显示和读取该对象的效率往往比从SQL Server显示和读取的效率更高。如果二进制对象比较小,也就是说每个构件只有很小的图像文件,那么将它们存储在SQL server内则绰绰有余。

· 安全:对这些二进制对象的访问是否要高度关注安全性。如果这些对象存储在SQL Server中,那么可以通过常规的数据库访问方式来管理其安全性。如果文件存储在文件系统,那么就需要另外设置更安全的替代管理办法了。

· 客户访问:客户对数据库的访问通过什么方式,是通过ODBC还是Native SQL Drive?对于大型视频流,以ODBC方式连接的客户可能出现连接超时和连接失败的问题。

· 碎片:如果要对这些二进制对象进行频繁的修改操作,或者这些文件很大,那么文件系统处理碎片的能力可能比SQL Server更好。

· 事务:是否需要进行事务控制,如果需要,那么SQL Server可能更好,因为其具有内置解决方案。

如果您想更深入探讨这个关于将BLOB文件存储在数据库还是文件系统的问题,以及想知道上面提到的1MB大小标准的划分有什么依据,可以通过以下链接,参阅微软的技术文献:http://research.microsoft.com/research/pubs/view.aspx?msr_tr_id=MSR-TR-2006-45 .

Tags:SQL Server 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接