SQLServer技术文章.docx

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLServer技术文章.docx

PAGE 30 SQL Server 技术文章 作者:Paul S. Randal (SQL) 技术审校:Alexandru Chirica、Arkadi Brjazovski、Prem Mehra、Joanna Omel、Mike Ruthruff、Robin Dhamankar 发布时间:2008 年 10 月 适用范围:SQL Server 2008 摘要:本白皮书介绍 SQL Server 2008 的 FILESTREAM 功能。通过此功能,可以将 SQL Server 2008 和 NTFS 文件系统结合使用来存储和高效地访问 BLOB 数据。本文内容涵盖了 如何选择 BLOB 存储、如何配置 Windows 和 SQL Server 以使用 FILESTREAM 数据,以及将 FILESTREAM 与其他功能结合使用的注意事项和实施细节(如分区和性能)。 本白皮书面向负责评估或实现 FILESTREAM 的架构师、IT 专业人员和 DBA。本白皮书假定读者熟悉 Windows 和 SQL Server,并且至少对数据库概念(如事务)有基本了解。 简介 在当今社会中,数据以爆炸性的速度增长,且通常需要以可控和高效的方式进行存储和访问。有许多技术可以实现上述目标,但具体选择哪种技术通常取决于所存储的数据的性质 – 结构化、半结构化或非结构化: 结构化数据可以很方便地存储在关系架构中,如公司的销售数据。这些数据可以存储在这样一个数据库中:一个表包含公司所销售产品的信息,另一个表包含客户的相关信息,还有一个表包含所销售产品的销售详情。可以使用丰富的查询语言(如 Transact-SQL)来访问和处理这些数据。 半结构化数据是指符合松散架构,但本身并不适合存储在一系列数据库表中的数据,例如其中的每个数据点可能具有完全不同属性的数据。在 Microsoft? SQL Server? 数据库软件中,半结构化数据通常使用 xml 数据类型进行存储,并使用基于元素的查询语言(如 XQuery)进行访问。 非结构化数据可能根本没有架构(如一段加密数据),也可能是大量的二进制数据(许多 MB,甚至达到 GB),这些二进制数据可能看起来没有架构,但实际上具有一个非常简单的内在架构(如图像文件、流视频或声音剪辑)。这种情况下的二进制数据表示可能具有任何值的数据,而不仅仅是可以在键盘上输入的数据。这些数据值通常称为二进制大型对象,简称为 BLOB。 本白皮书介绍 SQL Server 2008 的 FILESTREAM 功能。通过此功能,可以将 SQL Server 2008 和 NTFS 文件系统结合使用来存储和高效地访问 BLOB 数据。本文除了介绍 FILESTREAM 功能本身之外,还阐述了如何选择 BLOB 存储、如何配置 Windows? 操作系统和 SQL Server 以使用 FILESTREAM 数据,以及将 FILESTREAM 与其他功能结合使用的注意事项和实施细节(如分区和性能)。 BLOB 存储选择 虽然结构化和半结构化数据可以很方便地存储在关系数据库中,但选择将非结构化或 BLOB 数据存储在何处的过程就比较复杂了。当决定在何处存储 BLOB 数据时,应考虑以下要求: 性能:如何使用数据是一个关键因素。如果需要流访问,则将数据存储在 SQL Server 数据库中要比将其存储在外部位置(如 NTFS 文件系统)的访问速度更慢。如果使用文件系统存储,则数据会从文件中读取并传递到客户端应用程序(直接或通过附加缓冲)。如果 BLOB 存储在 SQL Server 数据库中,则数据必须首先读入到 SQL Server 的内存(缓冲池)中,然后通过客户端连接向外传回到客户端应用程序。这不仅意味着数据要经由一个额外的处理步骤,而且还意味着 SQL Server 的内存会受到 BLOB 数据不必要的“污染”,而这可能导致 SQL Server 操作出现进一步的性能 问题。 安全性:对于需要严格管理访问权限的敏感数据,可以存储在一个数据库中,并使用常用的 SQL Server 访问控制来控制安全性。如果相同数据存储在文件系统中,则需要实现不同的安全性方法,如访问控制列表 (ACL)。 数据大小:根据本白皮书后面引证的研究,小于 256 千字节 (KB) 的 BLOB(如小组件图标)比较适合存储在数据库内,而大于 1 兆字节 (MB) 的 BLOB 最适合存储在数据库外部。对于那些大小在 256 KB 到 1 MB 之间的 BLOB,最高效的存储解决方案取决于数据的读/写比以及“改写”速率。将 BLOB 数据完全存储在数据库内(例如,使用 varbinary (max) 数据类型)的限制是每个 BLOB 最大 2 千

文档评论(0)

zgc1960 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档