SQL Server 2008中最新的文件流功能使得你可以配制一个数据类型为varbinary(max)的列,以便将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列,即使数据自身存储在外部。 文件流特性通过将二进制大字段数据存储在本地文件系统中,从而将Windows新技术文件系统(NTFS)和SQL Server数据库引擎集成在一起。你可以使用Transact-SQL语句来查询、插入或更新数据,或者使用Win32文件系统界面来直接访问数据。
微软建议你仅在以下几种情况下使用文件流:(1)你的二进制大字段数据文件平均大于1M,(2)你需要快速读……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
SQL Server 2008中最新的文件流功能使得你可以配制一个数据类型为varbinary(max)的列,以便将实际数据存储在文件系统中,而非在数据库中。只要愿意,你仍可以作为一个常规的二进制列来查询此列,即使数据自身存储在外部。
文件流特性通过将二进制大字段数据存储在本地文件系统中,从而将Windows新技术文件系统(NTFS)和SQL Server数据库引擎集成在一起。你可以使用Transact-SQL语句来查询、插入或更新数据,或者使用Win32文件系统界面来直接访问数据。
微软建议你仅在以下几种情况下使用文件流:(1)你的二进制大字段数据文件平均大于1M,(2)你需要快速读取此数据,(3)你的应用程序使用中间列来处理应用逻辑。否则,你应该使用常规的varbinary(max)列。
要激活SQL Server 2008服务中的文件流支持,需要遵照以下几步:
1、配制数据库来支持文件流存储。
2、定义支持文件流存储的列。
3、启动SQL Server服务中的文件流支持
要激活SQL Server 2008中指定实例的文件流支持,你必须首先配制此实例的SQL Server服务。在SQL Server配制管理器中,打开服务属性并选择“文件流”页签,如图所示。
你至少需要选上“启动Transact-SQL文件流访问”勾选框。因为插入及更新数据最有效的方法是通过Win32界面,然而,你也需要激活服务来支持文件流(如果有必要,也可以启动允许远程客户端访问文件流数据)。
在你激活了SQL Server服务中的文件流支持后,必须设置文件流访问级别,你可以在SQL Server管理器中设置。要设置访问级别,需执行以下T-SQL语句:
EXEC sp_configure filestream_access_level, 2 GO RECONFIGURE GO |
在这里,我使用系统存储过程sp_configure将访问级别设为2,这个级别可同时支持T-SQL和Win32流访问。如果我想只是支持T-SQL访问,则需要将访问级别设为1。如果设置为0,将会禁用SQL Server实例的文件流支持。在你运行存储过程后,需要运行RECONFIGURE命令来应用新的选项设置。
配制数据库来支持文件流存储
支持文件流存储的下一步操作是向数据库定义中添加一个文件流文件组。文件流文件组是一个特殊的文件组类型,它包含文件系统目录(数据容器)。例如,在下边的数据库定义中,我创建了一个名为FileStreamGrp的文件流文件组。
USE master GO IF EXISTS SELECT name FROM sys.databases WHERE name = 'HumanResources') DROP DATABASE HumanResources GO CREATE DATABASE HumanResources ON PRIMARY( NAME = HumanRscsDat, FILENAME = 'C:DataHRHumanRscsDat.mdf'), FILEGROUP FileStreamGrp CONTAINS FILESTREAM( NAME = HumanRscsFs, FILENAME = 'C:DataHRFileStream') LOG ON( NAME = HumanRscsLog, FILENAME = 'C:DataHRHumanRscsLof.ldf') |
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。