RSS订阅
RSS订阅TT数据库

DB2 9 XML性能优势(一)

2008-8-22  选择字号:  | |
打印本文章

导读:当IBM在2006年推出DB2 9时,它的pureXML技术引起了广泛的关注。但是,人们并没有马上接受 "关系/XML" 混合型DBMS的思想。这种思想的好处很明显:通过把XML引擎……

关键词:DB2 9 XML 性能优势 DB2 9 XML性能优势

正在加载数据...

  前言

  在关系数据库中存储 XML 数据会提供可靠性、可管理性以及 RDBMS 的其他优点。但是,如果采用笨拙的存储方法(比如分解和 CLOB),应用程序的性能就会出现问题。当IBM在DB2 9中引入pureXML之后两年,这个问题已经解决了。

  当IBM在2006年推出DB2 9时,它的pureXML技术引起了广泛的关注。但是,人们并没有马上接受 “关系/XML” 混合型DBMS的思想。这种思想的好处很明显:通过把 XML 引擎和现成的 RDBMS 集成在一起,XML 数据可以轻松地合并到数据操作中,还可以对 XML 数据应用关系系统的许多数据管理特性,比如安全性和存档。但是,这种做法的性能怎么样呢?考虑到对象-关系数据库过去的性能,人们对混合型系统的性能抱着怀疑态度。

  两年之后,pureXML 的性能影响不仅停留在理论上,而且已经在真实环境中表现出来了。

  希望通过 XML 获得什么?

  在开发 pureXML 和 DB2 9 的 5 年中,IBM 深入研究了 XML 的性质(XML 具有强大的灵活性,同时也非常繁琐),发现了需要改进的五个方面。IBM 主要关注两个性能因素:存储模型和查询优化。

  XML 数据由一个层次化的树结构表示,通常包含多个层和大量节点,因此这种格式很难优化和编制索引。它还涉及某种形式的压缩。因此,XML 查询可能变得非常复杂。

  存储 XML 数据的一种常用方法是字符大对象(CLOB)。与二进制大对象(BLOB)一样,CLOB 通常作为一个整体存储,很少为编制索引或查询优化进行预处理。另一种方法是把 XML 数据 “分解” 为关系数据的列;这种方法需要复杂的解析技术,通常使用大量存储空间。

  DB2 pureXML 把 XML 数据存储为经过预先解析的层次化格式,这种格式反映数据的底层嵌套结构。这种格式支持编制复杂的索引,并允许对物理存储中的数据进行压缩。在执行查询时,pureXML 把 XQuery 和 SQL/XML 查询转换为一种在多方面(跨语言、查询重写、优化索引和成本)经过优化的统一格式。XML 压缩、查询优化以及关系和 XML 处理的混合(在 DB2 9.5 中还改进了插入和更新性能)改进了数据库的处理性能;IBM 的测试和真实项目表明,与 DB2 V8 或其他 DBMS 中的相似操作相比,速度提高了 10 到 20 倍(参见相关内容中 “成功带来的喜悦”部分)。

  更适合 XML 的模型

  pureXML 的性能特点还包括其适应性。要点:XML 数据并不会取代关系数据。对于标准的金融业务,XML 数据很难超越关系数据库,但是 RDBMS 很难处理出版物,比如整本书、杂志或期刊。如果应用程序中的数据具有复杂的层次结构,或者包含大量非结构化信息,RDBMS 也很难处理。例如,生命科学组织正在把许多常用数据由各种专有格式转换为 XML。在某些情况下,对于难以在传统 RDBMS 中存储和提取的数据,XML 格式提供了优化的数据访问路径,这使 XML 数据库在根本上具有显著的性能优势。

  XML DBMS 还有一个优点:它们能够通过 Web 服务或其他方法与 XML 应用程序直接通信。因为 XML 在因特网上使用广泛,应用程序之间的通信也大量采用 XML 格式,所以让整个通信链(应用程序 - 消息 - 数据库)都采用 XML 格式是很有意义的。

  IBM 的 pureXML 在技术方面有许多重要的创新(68 项新专利!),但是 IBM 关系/XML 模型真正的价值在于它在主流企业应用程序中表现出的性能。


DB2 9 XML性能优势
 DB2 9 XML性能优势(一)
 DB2 9 XML性能优势(二)
 DB2 9 XML性能优势(三)

原文出处:http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0606schiefer/index.html
来源:IBM    作者:Nelson King    
相关的专家答疑
DB2 9.5的下个版本,目前暂名为DB2 X(也是罗马数字10的意思),主要发展有4个方向︰继续完成在64位运算环境上的支持、处理器占用量能够再减少、支持更多数据……
了解SQL编码以获得最佳性能的基础知识将使您的Delphi企业应用程序的性能立即得到增长。但我只揭露了冰山一角。您需要学习日益增多的SQL的复杂类型……
当您编写访问DB2数据SQL语句时,要确保遵循以下三个编码SQL的准则以获得最佳性能。第一是始终在每条SQL SELECT语句的SELECT列表中只提供确实需要检索的那些列;第二是……
当要保证用IBM DB2 Universal Database和Borland工具构建的企业应用程序拥有最优性能时,程序员可以利用DB2优化器的能力来处理即使是“难以处理的”SQL语句……。
据国外媒体报道,由于备份出错导致大量数据丢失,美国德州州长里克·裴瑞近日下令暂停向IBM的IT系统转移州档案数据,并对IBM处以90万美元罚金。

本专题介绍了SQL Server服务代理相关方面的知识,包括SQL Server服务代理基础知识的概述、消息类型、契约、队列、服务和路由、SEND命令和RECEIVE命令、性能方面的改进以及对运行状况的监控等等。

无论你是否计划将SQL Server数据库转换服务(DTS)包迁移到SQL Server集成服务(SSIS)或在SQL Server 2005里运行DTS包,都需要专家的一些建议。这一指南主要是包括SSIS的相关基础知识、技巧帮助你进行SSIS调整,还介绍了SSIS有经验的一些用户的具体信息等等。

子查询是一个嵌套在SELECT、INSERT、UPDATE 或DELETE语句,或者另一个子查询里的查询。一个子查询可以返回一行或多行结果给父查询。标量子查询是只返回一个值的查询:只有一个字段的一行记录。标量子查询可以在SQL语句的大多数位置,其中你可以使用一个表达式或一个实际值。
最新更新
专家答疑
技巧
Michael Hillenbrand
你能解释一下数据库公程师、数据库架构师以及数据库管理员之间有什么区别吗?数据库管理员:这是目前最普遍使用的对从事数据库相关的工作的人的头衔。数据库管理员是指……
Brian Peasland
对5GB大小的Oracle 7.3存档或删除的最佳办法是什么?为了便于管理机构查询,这些数据至少需要再用20年的时间。我们担心将来我们不能对它重新获取并迁入一个更新的……
Rudy Limeback
如何创建一个约束限制2007年1月1日之前的日期被录入?用CHECK约束就可以。如下面的示例……