科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道使用SQL Server 2008管理非结构化数据(3)

使用SQL Server 2008管理非结构化数据(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

数字内容的急剧扩大显示了公司存储和访问商业数据所采用的方式。处于商业应用的核心的数据库必须和文档、图片、视频内容和其他多媒体格式的非结构化数据集成。

作者:IT专家网 来源:IT专家网 2008年1月28日

关键字: SQL 2008 SQL SQL Server SQL Server 2008

  • 评论
  • 分享微博
  • 分享邮件
 每一个方法都有其优劣之处。例如,在文件服务器或只用于BLOB的存储中存储非结构化数据会降低每GB所花费的费用,但是通常会增加管理和建立应用程序的复杂性,因为应用程序不得不维护包含BLOB数据的数据库和单独的系统中的记录以及这些记录所关联的对象间的完整性。另一方面,在数据库中存储BLOB数据方便地集中了数据存储,但是通常带来了更高的成本并会导致性能下降。

  SQL Server 2008推出了两个用于存储BLOB数据的新功能:

  · FILESTREAM:是一个你可以在varbinary字段上设置的属性,以便数据存储在文件系统中(因此受益于它的快速流式功能和存储能力)但是直接在数据库的上下文中管理和访问。:

  · 远程BLOB存储:一个客户端应用程序编程接口(API),它降低了建立依赖于一个用于BLOB的外部存储和一个用于关系数据的数据库的应用程序的复杂性。

  此外,SQL Server 2008继续通过varbinary 数据库类型支持标准的BLOB字段。

  3.1 SQL Server BLOB

  SQL Server 2005推出了varbinary(max)数据类型,它使得你可以在一个SQL Server字段或变量中存储最大为2,147,483,647字节的大型二进制数据值。当使用修订过的max时,你可以通过设置large value types out of row表选项来控制数据怎样存储在物理的表的数据页面中。当这个选项设置为ON时,所有的值存储在单独的链接页面上,而在这个记录的数据页面上会保存一个指向这些页面的16位的根指针。当这个选项设置为OFF时,最大为8000字节的值存储在这行的数据页面上,而更大的值存储在单独的链接页面上。

  尽管新的FILESTREAM 和远程BLOB能力是设计用来提供比标准的varbinaryBLOB字段更好的性能和可管理性,但有一些场景是使用varbinary 字段更适合的(具有代表性的是当BLOB平均规模小于250 KB的时候。)

  3.2 FILESTREAM 属性

  在SQL Server 2008中,你可以将FILESTREAM 属性应用到一个varbinary 字段,然后SQL Server 为这个字段在本地NTFS文件系统上存储数据。在文件系统上存储数据带来两个重大的优势:

  · 性能可匹配文件系统的流性能。

  · BLOB 规模只受文件系统的空间规模限制。

  然而,字段可以像SQL Server中的其它任何BLOB字段一样来管理,所以管理员可以使用SQL Server的可管理性和安全功能来集成BLOB数据管理和关系数据库中的其它数据——而不需要单独管理文件系统数据。在SQL Server中将数据定义为一个FILESTREAM字段还确保了在数据库中的关系数据和存储在文件系统中的非结构化数据在数据级的一致性。FILESTREAM字段的使用和BLOB字段一样,这意味着维护操作的完全集成(例如备份和恢复)、和SQL Server安全模型的完全集成、以及纯事务的支持。

  应用程序开发人员可以通过两个编程模型中的一个来使用FILESTREAM数据;他们可以使用Transact-SQL就像对待标准的BLOB字段一样的来访问和操纵数据,或者他们可以使用Win32流式API和Transact-SQL事务型语义来确保一致性,这意味着他们可以对FILESTREAM BLOB使用标准的Win32读/写调用,这和他们与文件系统上的文件交互时所做的一样。

  在SQL Server 2008中,FILESTREAM 字段只可以将数据存储在本地磁盘空间,并且FILESTREAM 字段不支持像简单加密和以表为值的参数等功能。此外,你不能在数据库快照或数据库镜像会话中使用包含了FILESTREAM字段的表,不过支持日志传送功能。

  3.3 远程BLOB存储API

  尽管FILESTREAM 属性将文件系统的性能和可扩展性与在数据库中存储BLOB的可管理性和数据一致性结合起来,但是通常会出现在像EMC Centera、Fujitsu Nearline、Microsoft Windows®这样的文件服务器或其它任何只用于BLOB的存储的系统中存储BLOB更有效或成本利用率更高的场景。在SQL Server 2008中的远程BLOB存储API通过提供一个基于提供商的架构使得可以更容易的将只用于远程BLOB存储解决方案和你的数据库中的关系数据集成起来,这个架构使得你的应用程序可以使用任何BLOB存储而不需要特定的BLOB存储功能或代码。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章