1. 主页 > 软件开发 > 如何使用 SQL Server FILESTREAM 存储非结构化数据?

如何使用 SQL Server FILESTREAM 存储非结构化数据?

作者 | ALEN İBRIÇ

译者 | 火火酱,责编 | Carol

封图 | CSDN 付费下载于视觉中国

在本文中,我将解释如何使用SQL Server FILESTREAM来存储非结构化数据。同时,还会介绍FILESTREAM的优缺点。

@AnsonC@SEO@在SQL Server的早期版本中,非结构化数据的存储在维持结构化和非结构化数据间一致性、管理备份/还原过程、性能问题、可扩展性等方面提出了许多挑战。在SQL Server 2008之前的MSSQL早期版本中,存在各种用于存储非结构化数据的机制。这些信息通常被以文件的形式存储在共享文件夹中,其访问权限被授予了某些用户。

这些文件的UNC路径通常作为表)中的一列存储于数据库中,以便应用程序逻辑可以访问特定的文件。但文件的安全性、管理其访问权并对其进行维护方面存在一定问题。

后来的二进制大对象(Binary Large Objects,BLOB)概念在一定程度上有助于存储非结构化数据。这个概念的主要优点是数据库中的集成管理和事务一致性。在这种情况下,安全问题(以前的文件解决方案)得到了解决。但仍存在一些问题,即2GB的限制以及日志文件过载。

@AnsonA@SEO@为了解决这些问题,SQL Server 2008首次引入了名为FILESTREAM的增强功能。

它不是VARBINARY 这样的数据类型,而是通过VARBINARY列设置的attribute/property,表明数据应该被直接存储在文件系统上。这些数据仍然是系统的组成部分,并保持事务一致性。

以下是FILESTREAM的一些特征:

二进制数据作为单独的文件存储在数据库之外。 可以通过WIN32 API对这些单独的文件进行操作。 T-SQL语句适用。 通过FILESTREAM存储在文件系统中的对象已经取消了VARBINARY 列的2GB文件大小限制。 FILESTREAM还可以被用在压缩文件、磁盘、卷中。

要使用FILESTREAM,必须将其激活。FILESTREAM可在两个级别上启用。第一级是SQL Server级别。该级别在安装SQL Server时被启用。如果没这样做的话,可以选中SQL Server FILESTREAM选项卡上的复选框,通过SQL Server 配置管理器来启用。

图1. 使用SQL Server 配置管理器在SQL Server级别启用FILESTREAM

启用FILESTREAM的第二个级别是SQL Server Instance(实例)级别。通过执行脚本1中提供的T-SQL脚本来实现。

EXECsp_configure filestream_access_level, 2

RECONFIGURE

脚本1:在Server Instance 级别启用FILESTREAM

表 1 列出了filestream_access_level的可能值。

描述

0

禁用FILESTREAM 对此实例的支持.

1

启用FILESTREAM 进行Transact-SQL 访问.

2

启用FILESTREAM 进行Transact-SQL 和Win32 流访问.

表1. filestream_access_level的可能值

下一步是创建一个数据库,可以在其中创建将使用FILESTREAM的表。脚本2给出了一个T-SQL脚本示例,该脚本能够创建可以使用FILESTREAM的数据库。

本文由星云棋牌首页发布,不代表星云棋牌首页立场,转载联系作者并注明出处:http://www.ashleyplus3.comhttp://www.ashleyplus3.com/ruanjiankaifa/2020/1017/2677.html

联系我们

在线咨询:点击这里给我发消息

QQ:1476 2353

工作日:9:30-18:30,节假日休息