扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:IT专家网 来源:IT专家网 2008年1月28日
· 客户端库:它是一个能够使得任何提供商和你的BLOB以及关系数据一起使用的组件。客户端应用程序使用客户端库和任何适用的提供商库来插入、更新和查询存储在BLOB中的数据和数据库中存储的数据。
· 供应商库:它是一个由BLOB存储供应商提供的具有代表性的组件(尽管它可以定制开发)。供应商库实现了一个常规接口,提供了一组标准的服务,这些服务抽象了对这个特定的存储执行Create、Fetch、Enumerate、Delete和Garbage Collect操作的细节。.
当你的数据库BLOB需要存储在与数据库不同的服务器上并需要和其它系统协作时,远程BLOB存储API(Remote BLOB Store API)是一个理想的选择。它对BLOB存储没有任何限制。任何提供远程BLOB存储提供商的系统或任何可以建立于远程BLOB存储提供商的系统都支持它。因为与BLOB存储的交互细节被提供商库抽象出来了,所以你可以改变存储而不必改动应用程序,这带来了很大的好处并且降低了开发人员和管理员的复杂度。Microsoft与业内的所有存储供应商合作,以确保提供一个适当的供应商库用于远程BLOB存储API。
使用远程BLOB存储API使你能够灵活地使用不同的系统来管理关系数据和非关系数据。远程BLOB存储API通过链接级别的一致性维护了数据库中的记录与在外部存储的BLOB之间的一致性。例如,如果你通过一个删除语句从数据库中删除BLOB参照,系统将从存储中删除BLOB。然而,使用远程BLOB存储API不能提供随着BLOB直接存储到数据库中而来的数据级别的一致性,要做到这一点你需要使用FILESTREAM或者varbinary。
3.4 比较BLOB的存储选择
下表比较了SQL Server 2008中的BLOB数据的存储选择。
|
只使用文件服务器或者BLOB存储 |
SQL Server BLOB |
远程BLOB存储API |
FILESTREAM 字段 |
快速流式性能 |
取决于文件存储 |
否 |
取决于BLOB存储 |
Yes |
链接级一致性 |
是 |
是 |
是 |
是 |
数据级一致性 |
否 |
是 |
否 |
是 |
综合管理 |
否 |
是 |
否 |
是 |
使用远程Windows 文件服务器 |
n/a |
否 |
是 |
这个版本中没有 |
与外部的BLOB存储协同工作 |
n/a |
否 |
是 |
否 |
表1:BLOB存储选项对照
这些选项意味着SQL Server 2008为存储非结构化数据提供了一个最适合你的业务需求的灵活的解决方案。
4. 在SQL Server 2008中搜索非结构化数据
使用非关系数据的应用程序的一个最常见的要求是使得可以在数据上作纯文本搜索。
4.1 综合的纯文本搜索
SQL Server 在之前的版本中支持纯文本搜索。然而,它一直依赖于一个外部的服务——Windows Search Service ——作为它的纯文本搜索引擎。使用外部服务产生了下面两个挑战:
· 对外部服务的依赖使得部署更加复杂,也更难进行支持。
· 结合了纯文本搜索谓词和标准的SQL谓词的查询性能受到影响,因为从搜索的纯文本部分得来的整个结果集不得不在标准的谓词应用之前放置在这个引擎上。查询优化器不能创建与纯文本搜索谓词协作的计划。
在SQL Server 2008,纯文本搜索是完全集成在数据库引擎中的。通过将纯文本引擎直接集成到SQL核心中,SQL Server 2008解决了之前版本中所面临的挑战,降低了管理和部署SQL Server的成本,同时提高了搜索非结构化数据的性能。
5. 总结
SQL Server 2008为存储和搜索非结构化数据提供了一个灵活的解决方案。FILESTREAM加强了存储数据库中的非关系数据像BLOB和关系数据的性能,而没有降低可管理性。如果你需要使用一个只用于BLOB的存储,那么远程BLOB存储API能够帮助你集成你的BLOB数据和你的数据库中的关系数据,并提供一个一致的编程界面用于与这个数据交互,还提供了系统的独立性,用来存储数据。最后,当你需要通过使用在这篇白皮书中讨论的任何解决方案来存储和使用大型文档库时,SQL Server 2008帮助你使得搜索非关系数据更加有效也更易于管理。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者