Sql Server 2008 FileSteam全攻略(一)---FileStream介绍

 

SqlServer2005及以前的版本,存储二进制大数据量对象(Blob)都是采用varbinary(max)的字段。Sql Server 2008通过将 varbinary(max) 二进制大型对象 (BLOB) 数据以文件形式存储在文件系统上,FILESTREAM 使 SQL Server 数据库引擎和 NTFS 文件系统成为了一个整体。Transact-SQL语句可以插入、更新、查询、搜索和备份 FILESTREAM 数据。通过 Win32 文件系统接口可以流式方式访问数据。

SQL Server 中,BLOB 可以是将数据存储在表中的标准 varbinary(max) 数据,也可以是将数据存储在文件系统中的 FILESTREAM varbinary(max) 对象。数据的大小和应用情况决定您应该使用数据库存储还是文件系统存储。如果满足以下条件,则应考虑使用 FILESTREAM

·         所存储的对象平均大于 1 MB

·         快速读取访问很重要。

·         您开发的是使用中间层作为应用程序逻辑的应用程序。

·         对于较小的对象,将 varbinary(max) BLOB 存储在数据库中通常会提供更为优异的流性能。

FILESTREAM 存储以 varbinary(max) 列的形式实现,在该列中数据以 BLOB 的形式存储在文件系统中。BLOB 的大小仅受文件系统容量大小的限制。文件大小为 2 GB varbinary(max) 标准限制不适用于存储在文件系统中的 BLOB

若要指定列应将数据存储在文件系统中,请对 varbinary(max) 列指定 FILESTREAM 属性。这样数据库引擎会将该列的所有数据存储在文件系统,而不是数据库文件中。

FILESTREAM 数据必须存储在 FILESTREAM 文件组中。FILESTREAM 文件组是包含文件系统目录而非文件本身的专用文件组。这些文件系统目录称为“数据容器”。数据容器是数据库引擎存储与文件系统存储之间的接口。

使用 FILESTREAM 存储时,请考虑以下内容:

·         如果表包含 FILESTREAM 列,则每一行都必须具有唯一的一个非空行 ID

·         不能嵌套 FILESTREAM 数据容器。

·         使用故障转移群集时,FILESTREAM 文件组必须位于共享磁盘资源上。

·         FILESTREAM 文件组可位于压缩卷上。

最后需要注意的是:即使启用了透明数据加密,也不会加密 FILESTREAM 数据。

下面将介绍如何在Sql Server 2008中安装FileStream

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值