位置: 编程技术 - 正文

SQL Server的FileStream和FileTable深入剖析

编辑:rootadmin
互联网时代数据是爆炸式增长,我们常常需要把结构化数据和非结构化数据(如文档,演示文稿,视频,音频,图像)存储在一起。通常有几种方案: 1。在数据库中存储结构化数据,在文件系统中存储非结构化数据,然后数据库里有一个字段记录文件系统的路径,虽然这种方法成本合算,但它引入了额外的复杂度,因为你需要手动去保证跨关系和非关系系统管理事务的完整性。 2。将结构化数据和非结构化数据都存储在数据库中,多年以来,数据库一直都支持存储非关系数据,如二进制大对象,或BLOB,SQL Server称之为varbinary数据类型,这样的好处是能充分利用数据库的特性(如事务支持,备份和恢复支持,集成安全性的支持,全文搜索支持等),但成本费用会更高,所需的磁盘空间更多,因为是存储在同一行数据里,存储和检索时间更长,对应用程序的整体性能也会有负面影响。(如果你写查询时用select * from xxx 就很慢了) 3。SQL Server 中引入的FILESTREAM数据类型来存储非结构化数据,如文档,演示文稿,视频,音频,图像,数据库中存储的是文件系统上的一个指针。在SQL Server 中,新的FILESTREAM(文件流)特性是在现有的varbinary(max)数据类型之上实现的,你可以在服务器的文件系统上存储真实的数据,但可以在数据库上下文内管理和访问。自动保证了事务的完整性。 4。SQL Server 的FileTable则进一步增强,它可以让应用程序通过引入FileTable整合其存储和数据管理组件,允许非事务性访问,提供集成的对非结构化数据和元数据的全文搜索和语义搜索。下面详细谈谈这两项新功能。 了解在SQL Server 中的FileStream FILESTREAM数据类型作为varbinary(max)列实现的,数据是存储在NTFS文件系统,数据库中存放的是指针。在这种情况下,存储不再是BLOB的2GB大小的限制,只是受制于NTFS文件系统的文件大小。FileStream是默认禁止的,所以你需要对varbinary(max)列指定FILESTREAM属性。这样SQL Server才不会把BLOB存到SQL Server数据库,而是存到NTFS文件系统。 将BLOB数据存储在NTFS文件系统上的带来了一些好处: 和直接操作NTFS文件系统的数据流的性能一样 FILESTREAM数据没有使用SQL Server缓冲池的,因此SQL Server缓冲池的查询处理,并不会受到FILESTREAM数据的影响。 不再有BLOB的2G大小的限制。 事务的一致性。 SQLServer集成的安全模型。 备份和恢复时,会包含FILESTREAM BLOB数据。 支持全文搜索。 用SELECT,INSERT,UPDATE和DELETE语句,操作带FILESTREAM数据的表,性能没有变慢。 为了使用这项新功能,我们首先需要在实例级别启用它(在安装过程中,或通过修改SQL Server实例的属性,或通过使用sp_configure来更改实例属性),然后创建或修改数据库,有一个文件组有FileStream属性,然后创建一个表带有varbinary(max)数据类型列,并指定FileStream属性。了解SQL Server 的FileTable FileTable使用FILESTREAM的基础上进一步加强,它既允许直接的,事务性的,存取FILESTREAM列大型数据。FileTable表也可以配置为允许非事务性访问文件,而无需事先SQLServer授权。FileTable是一种特殊类型的表,它的结构是固定的,不像普通用户表可以定义自己的字段,就好像它是一个文件夹中的文件系统。一个的FileTable包含的FileStream随着几个文件级属性(file_id,名称,路径,创建日期,修改日期,最后访问时间等),文件和目录层次结构的数据。这意味着FileTable中的每一行数据代表一个文件系统上的文件或目录。 FileTable在文件系统表现为一个indows共享目录,里面有文件和目录数据,你可以通过非事务性的文件访问(基于Windows API的应用程序能够访问文件,而无需SQLServer访问权限)。对于Windows应用程序,这看起来像一个正常的网络共享位置的文件和目录。应用程序可以使用Windows API来管理这个网络共享位置的文件和目录。 Windows API操作是非事务性的,和数据库是不相关。然而,FileTable是基于FileStream实现的,所以SQL的事务是支持的。FileTable也可以通过正常的Transact-SQL命令查询和更新。他们还集成了SQL Server管理工具和功能,如备份和恢复。我们需要分开配置FileTable和FILESTREAM。这意味着,我们可以继续只使用FileStream的功能,而无需启用非事务性访问或创建FileTable。 开始使用SQL Server 的FileTable 启用FileStream 按 Ctrl+C 复制代码创建LearnFileTable数据库 按 Ctrl+C 复制代码检查FileStream/FileTable 创建FileTable 按 Ctrl+C 复制代码如果我们创建FileTable前没有启用FileStream,会报错 Msg , Level , State 1, Line 1 Default FILESTREAM filegroup is not available in database '<database_name>'创建后,我们查询一下,没有记录 USE LearnFileTable SELECT * FROM [dbo].[MyFirstFileTable] 在企业管理器选择FileTable,右键 "Explorer FileTable Directory" link as shown below: 你会看到网络共享目录. 手动添加几个文件到该目录,我们返回SQLServer企业管理器看看有什么事情发生: 再运行一次查询语句 USE LearnFileTable SELECT * FROM [dbo].[MyFirstFileTable] 总结 在这篇文章中,我谈到了利用SQL Server的FileStream和FileTable功能存储非结构化的数据。 FILESTREAM功能在文件系统中存储&#;&#;非结构化数据,并把文件的指针保存在数据库,而FileTable进一步扩展了这一功能允许非事务性访问(访问文件,而无需事先授权,共享位置)。换句话说,有了这个功能,我们可以通过文件系统来管理非结构化数据,而不是在SQL Server管理,却依然可以在SQL Server中的事务访问这些文件。

推荐整理分享SQL Server的FileStream和FileTable深入剖析,希望有所帮助,仅作参考,欢迎阅读内容。

SQL Server的FileStream和FileTable深入剖析

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

ADO.NET数据连接池剖析 本篇文章起源于在GCRMVPOpenDay的时候和C#MVP张响讨论连接池的概念而来的。因此单独写一篇文章剖析一下连接池。为什么需要连接池剖析一个技术第一个

sql server 复制表从一个数据库到另一个数据库 /*不同服务器数据库之间的数据操作*/--创建链接服务器execsp_addlinkedserver'ITSV','','SQLOLEDB','远程服务器名或ip地址'execsp_addlinkedsrvlogin'ITSV','false',null,'用户

SQL SERVER如何判断某个字段包含大写字母 sql语句中默认是不区分大小写的,所以语句:Sql代码SELECT*FROMRecEngineBizInfoWHERERecEngineBizName='QQ'和Sql代码SELECT*FROMRecEngineBizInfoWHERERecEngineBizName='qq'查到的结

标签: SQL Server的FileStream和FileTable深入剖析

本文链接地址:https://www.jiuchutong.com/biancheng/348113.html 转载请保留说明!

上一篇:在SQL Server数据库中为标识(IDENTITY)列插入显式值(在sqlserver2008中)

下一篇:ADO.NET数据连接池剖析(ado connection open.vi)

  • 申请退还增量留抵税额的条件包括
  • 抗税的性质
  • 个人独资企业需要交什么税
  • 净利润和盈余公积的会计分录
  • 建设工程劳务分包的规定
  • 银行借记和贷记的区别是什么
  • 从企业分红所得税怎么算
  • 中标服务费可否开发票
  • 申报增值税之后怎么做账
  • 公司给员工租的宿舍怎么交税
  • 变更了公司名称以前的发票还可以抵扣吗
  • 视同销售增值税表怎么填
  • 外贸企业出口退税计算公式
  • 企业代扣职工个人缴纳的五险一金
  • 外购存货的成本不包括
  • 银行有误退款分录怎么写
  • 视同销售存货账务处理方法是什么?
  • 应付股利会计分录例题
  • 小规模税率还是1%吗
  • 怎么进行现金流量分析
  • 基金预算收入核算的内容包括
  • 存货跌价准备计提原则
  • 应交税费年末账务处理
  • 用友财务软件怎样
  • 坏账损失的确定原则
  • compaq-rba.exe是哪个方面的进程 作用是什么 compaq-rba进程查询
  • 详解php比较操作过程
  • php字符串型数据的定义方式
  • 固定资产和低值易耗品的登记和管理咋弄?
  • PQV2ISECURITY.EXE - PQV2ISECURITY是什么进程 有什么用
  • lnmgr.exe是什么
  • Loughrigg Tarn的日出,英国英格兰湖区安布尔塞德 (© John Finney photography/Getty Images)
  • 兰溪园林绿化养护
  • php验证码识别
  • 图像质量评价指标及方法 图像工程
  • php制作微信小程序
  • 出口退税款的账务怎么做
  • 非一般纳税人怎么报税
  • 应付票据的贴现账务处理
  • 什么时候进项税转出
  • 预收账款开票了怎么做账报税
  • wordpress提示插件
  • 工资薪金和外出费用区别
  • 如何在税控盘上申领发票
  • 公司一般户需要年检吗
  • 新公司成立后税务方面有哪些流程2023
  • 资产合计是期末余额吗
  • 小型生产加工企业税率
  • 数据库双亲结点
  • 公司买手表可以抵扣增值税吗
  • 小规模纳税人免税额度是多少
  • MySQL中使用命令行查看二进制文件
  • 扣交社保会计分录
  • 广告费可以结转几年
  • 长期股权投资账务处理实例
  • 营改增后众筹融资业务的会计处理分析?
  • 生育津贴领取条件及流程
  • 洗浴发票可以报销么
  • 收到预收账款要确认收入吗
  • 发票作废后对方还能认证吗
  • 结转销售成本怎么操作
  • 企业流动负债比率多少算正常
  • sqlserver2008r2创建实例
  • ubuntu如何配置
  • debian iso
  • VirtualBox虚拟机免费
  • cf游戏截图在哪个文件夹
  • win 8.1激活
  • unity进阶之路
  • JavaScript的函数库
  • css可继承
  • javascript对象的创建方法
  • jQuery中$.ajax()方法参数解析
  • python中的编码
  • 需要缴税多少钱一个月
  • 广西国税官网
  • 医院法制科工作职责
  • 宣城市有什么好玩的景区
  • 深圳龙华九价怎么预约
  • 银行宣传岗位职责怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设