SQL Server 2008文件流功能应用设想

日期: 2009-07-02 作者:光头猪猪 来源:TechTarget中国 英文

一、SQL Server 2008文件流功能简述   SQL Server 2008中最新的文件流功能使得你可以将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列,即使数据自身存储在外部。你可以使用Transact-SQL语句来查询、插入或更新数据,或者使用Win32文件系统界面来直接访问数据。   文件流的优点   BLOB(二进制大数据,一般是图片文档视频等等文件附件)数据现在可以保存在NTFS系统中,并且它处于SQL Server 2008的控制之下。

  SQL Server将维护所有BLOB数据的事务一致性。   对于要以FILESTREA……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

一、SQL Server 2008文件流功能简述

  SQL Server 2008中最新的文件流功能使得你可以将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列,即使数据自身存储在外部。你可以使用Transact-SQL语句来查询、插入或更新数据,或者使用Win32文件系统界面来直接访问数据。

  文件流的优点

  BLOB(二进制大数据,一般是图片文档视频等等文件附件)数据现在可以保存在NTFS系统中,并且它处于SQL Server 2008的控制之下。

  SQL Server将维护所有BLOB数据的事务一致性。

  对于要以FILESTREAM来存储的文件没有规模限制。只要你在磁盘上具有空间,那么你就可以存储更大的FILESTREAM文件。

  当激活了文件流的数据库被备份后,在指定FileStreamData文件夹下的所有BLOB文件都将被备份,它们将帮助数据库管理员轻松地管理BLOB。

  可以通过TSQL和具有很好流性能的NTFS流APIs轻松地访问数据。

  文件流的缺点

  数据库镜像不能配置在激活了文件流的数据库上。

  数据库快照不能快照文件流数据库中的文件流数据。

  SQL Server 2008的文件流特性帮助公司更有效地管理它们的BLOB数据,因为它们可以在NTFS文件系统中存储数据并利用SQL Server事务一致性的好处。数据库管理员现在可以轻松地进行公司的文件流数据备份,只需要对文件流数据库进行备份就可以了,不用对每一个BLOB文件进行单独备份。这使得他们可以节省很多时间,而且不会再因为没有备份一些文件而丢失数据。

  二、SQL Server 2008文件流功能应用设想

  在传统PDM系统以及类OA、邮件系统等等涉及文件附件保存的信息系统中,一直存在两种处理方式,就是数据库存储全部数据,或者数据库负载数据结构查询、文件系统负责文件存储,两种方式互不兼容。现在SQL2008提供的文件流功能,终于为两种方式的统一指出了一条新路。

  关于SQL2008文件流的应用,有两个方向:

  1、将现有作为独立附件的文件纳入数据库,可统一备份和恢复,甚至可能进行全文检索。例如现在的OA系统,结构数据库和附件数据是分离的,数据库里面只保存了文件的链接指针。可以探讨是否可以直接在OA中应用文件流,将附件直接收入数据库管理,实现附件与数据库的统一,在编程的简便性和系统性能、可管理性方便都得到改进;

  2、将现有全文数据库管理的大文件分离到文件系统,减少数据库容量和负担,让文件系统处理文件存储传送,数据库负责查询,扬长避短。例如PDM系统,所有文件都在数据库中存储,这是一种便于统一管理,但是非常低效率的方式。一个轿车车型的PDM的数据库体积已经超过200GB,而实际真正具备数据表特征的数据恐怕不到1%,数据库当文件服务器来用实在是有些无奈。如果能将数据库中的CAD文档等文件剥离出来,转存到文件系统,那么PDM系统的管理和性能矛盾就能得到完美的解决。

  三、小结

  在SQL2008之前,也有其它理念可以尝试着解决数据库--文件系统之间的矛盾,例如NTFS文件系统与数据库的统一,文件系统本身就采用数据库的运作方式;还有文档与数据库的统一,CAD、DOC文档本身采用数据表的方式存储,修改文档也只是修改数据库内对应的很小数据块,存盘时并不会导致整个文件的重新存储(据传catia新版本就采用了数据库的方式保存CAD文档,如果此方式与PDM结合,用户端修改文档导致的网络流量、磁盘读写量会减少百倍以上!)。

  但是,文件系统与数据库的统一目前还未实现,而单个CAD程序的数据库化存储并不能影响到类似PDM、OA、邮件系统等基于文档管理的信息系统架构,因为架构的改变只有所有文档都实现数据库化存储能实现。文档来源不一致必然导致存储架构无法统一,信息系统只能继续以附件或者BLOB方式来管理文件。

  所以,真正能够具备实际操作可能性,体现价值的,我想应该是在SQL2008上的文件流功能了,它能在信息系统公用的数据库层面实现基于文件的文档存储和BLOB两种方式的统一。希望早日见到有实际的应用,让我们经历又一次IT架构的革新体验。

相关推荐