DB2 9 XML 性能优势

数据库
在关系数据库中存储 XML 数据会提供可靠性、可管理性及 RDBMS 的一些其他的优点。但是如果你采用的是笨拙的存储方法,应用程序的DB2 9 XML性能就会出现一些问题。

当 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 中还改进了插入和更新性能)改进了数据库的处理DB2 9 XML性能;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 模型真正的价值在于它在主流企业应用程序中表现出的性能。

XML 在真实环境中的性能

 

北京西城区卫生局为大约一百万人提供服务,它把客户清单存储在一个大型数据库中,其中包含敏感数据。卫生系统需要把完整的文档(比如医生的报告)与来自许多数据源的数据组合在一起,因此非常需要利用 XML 的灵活性。卫生局的 CIO Zhu Shu Hong 指出,“带有 pureXML 特性的 DB2 9 不但适合核心数据库存储模型,也适合原始数据收集形式和数据交换”。Zhu 先生认为,XML 能够处理复杂的个人健康记录,这使 XML 非常适合他们;XML 提供了灵活的查询功能,能够对实时随需信息进行快速响应,这对于某些医疗活动非常重要。尤其是西城区卫生局把它的大型 DB2 9 数据库与 IBM 面向服务体系结构(SOA)结合在一起,为向应用程序提供数据的 Web 服务实现了一个 “服务总线”。

German Research Center for Competitive Sports(Das Deutsche Forschungszentrum für Leistungssport)开发了一个称为 eActe 的应用程序,这个程序用来收集和分析关于运动科学的基本信息和应用研究信息。数据收集是这个程序中最困难的方面。这个数据库包含的内容非常广泛,包括监视设备生成的大量数据、扫描图像和大量手工输入的数据。例如,有以 9 种形式收集的 3,000 个参数,共有 63 页。数据是通过一个专用的在线门户或客户机应用程序使用 Lotus Forms 软件捕捉的,然后通过一个 IBM WebSphere Application Server 传递,并以关系格式和 XML 格式存储在 IBM DB2 9 中。对于位于 Koln 的研究中心,pureXML 能够快速捕捉复杂的运动测试结果,并以 XML 格式提交数据,其他程序很容易用这种格式进行分析。

另一个德国组织 Douglas Holding AG 使用 IBM DB2 9 和 pureXML 从 1,600 家零售商店和 800 家香料店收集数据,执行一项非常传统的零售工作:每天整理每家商店的现金收据并为公司的数据仓库准备结果。在这种情况下,pureXML 用来压缩数据和决定数据结构,Douglas 发现与以前的系统相比这个系统更容易使用(参见相关内容中“成功带来的喜悦”部分)。

这些例子都表明了一点:pureXML 数据存储的效率、响应速度和 XML 数据的查询灵活性都很好。

***实践

IBM 为提高 XML 性能做了大量工作,尤其是应对数据量和查询复杂性的增加;但是,与所有数据管理系统一样,pureXML 也需要良好的设置和一些调整。关于 XML 性能调优的一些建议参见相关内容中“获得出色的 XML 查询DB2 9 XML性能”部分。

XML 数据库市场在最近 10 年竞争越来越激烈了,但是 IBM 的混合方式非常先进,这使 XML 成为日常数据管理的固有组成部分。为了实现这个目标,IBM 增强了 pureXML 的功能、可靠性和性能。IBM 首先做了一些研究,然后在 DB2 9.5 中实现了许多性能改进。

尽管 XML 已经成为因特网上主要的数据语言,它是实际上的数据交换标准,而且几乎已经成为 Web 服务和 SOA 的必有部分,但是一些 DBA(甚至整个 IT 部门)仍然对是否接受它犹豫不决。DB2 9 和 pureXML 把关系数据库的可靠性、可伸缩性和可管理性引入了 XML 领域,同时避免了其他老式存储方式的缺点。因此,那些对 XML 的性能持怀疑态度的 IT 人员应该转变思想了。

相关内容

获得出色的 XML 查询性能

XML 应用程序通常需要很高的性能。实现良好性能的主要责任由应用程序设计人员和 DBA 承担。在 Matthias Nicola 的 developerWorks 文章 “DB2 9 中 15 个 pureXML 性能***实践” 中,他解释了如何通过 DB2 9 的 pureXML 技术产生***的性能。下面总结一下他的前五个提示。

理智地选择 XML 文档的粒度。在设计 XML 应用程序和 XML 文档结构时,需要决定在单一 XML 文档中包含哪些业务数据。在细粒度、中等粒度和粗粒度之间进行选择时,需要考虑应用程序主要以哪种粒度访问和处理数据。如果不太确定,那么应该倾向于选用较细的粒度和较小的 XML 文档。

使用 DMS 和更大的页取得更好的 XML 性能。数据库管理的表空间(DMS)可以提供比操作系统管理的表空间(SMS)更高的性能。在 DB2 9 中,在默认情况下新创建的表空间是 DMS。DMS 表空间与自动存储一起使用可以使 DMS 容器随需增长,而不需要人为干预。经验法则是,为 XML 数据选择一个不小于平均预期文档大小的两倍而且不超过***值 32 KB 的页大小。如果为关系数据和 XML 数据(或者为数据和索引)使用单一的页大小,那么 16KB 或 8KB 的页对于这两种数据类型而言可能都是较好的选择。

使用 XML 存储选项:内联、压缩或单独的表空间。如果通过性能分析发现对于 XML 数据需要更大的页大小,而对于关系数据或索引则需要更小的页大小,那么可以使用单独的表空间。当定义一个表时,可以将 “长” 数据(大对象和 XML 数据)转到一个具有不同页大小的单独的表空间中。但是应按常理来考虑。更少的缓冲区池和表空间以及更少的页大小种类,可以产生更简单的物理数据库设计,从而更容易管理、维护和调优。因此,要避免引入多种页大小,除非您知道这样做确实可以带来性能好处。应该使用内联和压缩功能来减少存储开销并提高 I/O 性能。

配置 DB2 以便快速地成块插入 XML 数据。传统的插入和日志记录性能调优对于 XML 插入和导入仍然适用。在 DB2 9.5 中,使用装载代替导入。如果表上需要多个 XML 索引,就应该在任何成块插入之前定义它们。这样的话,每个 XML 文档只被处理一次,便可以为所有 XML 索引生成索引条目。如果在填充表之后发出多条 create index 语句,那么 XML 列中的所有文档将被访问多次。

使用新的快照监视器元素检查 XML 性能。DB2 9 为 XML 数据提供了新的缓冲区池快照监视器元素,它们与用于关系数据和索引的现有计数器相对应。由于关系数据和索引存储在一个表空间内不同的存储对象中,因此它们具有不同的读和写计数器。DB2 9 中的 pureXML 存储为 XML 数据引入了一种新的存储对象(称为 XDA),它也有自己的缓冲区池计数器。

在研究了 Nicola 的性能提示之后,一定要阅读他关于通过索引改进 XML 查询性能的文章。

成功带来的喜悦

DB2 9 pureXML 使香料店和零售公司 Douglas Holding 能够更快地进行销售数据整理和聚合。

Douglas Holding AG 公司在欧洲和美国拥有超过 1,800 家零售商店。在 2005 年,它启动了一个称为 Operational Data Stage 的项目,其目的是解决现金收据整理和销售信息聚合的主要问题。使用 XML 格式获得数据是一个重要的基础步骤。“灵活性是我们选用 XML 的主要原因,” Andreas Birkendorf 博士(处理公司 IT 需求的 Douglas Holding 分支机构 Douglas Informatik & Service 的项目主管)说,“因为数据源的差异非常大,而且它们的格式还可能会变化,所以我们需要一种非常灵活的接口。”

这个项目在开始时使用 IBM DB2 Version 8 XML Extender,这是有效的,但是过程很复杂,难以使用。2007 年,IBM DB2 9 pureXML 的出现改变了这种状况。DB2 9 更容易使用,尤其是在 XML 和关系结构之间进行映射方面。与使用 DB2 V8 XML Extender 时相比,性能提高了 20 倍以上。这大大减少了处理时间;尽管 Birkendorf 的团队一度担心如果 Douglas 决定增加数百家商店,他们就会无法承受,而现在 Birkendorf 确信 “现在我们知道我们可以应付。”

据 Birkendorf 所说,一部分DB2 9 XML性能改进并非来自物理处理速度的提高,而是由于不再需要完成某些工作。“如果格式发生细微的变化,pureXML 使我们可以更轻松地应对。实际上,有时候我们甚至不需要做手工修改;系统会处理它。”

Douglas Holding 很早就利用 pureXML 实现了 XML 模型系统,但是这个过程并非一帆风顺。“具有关系数据库背景的人员可能需要调整其思维模式,” Birkendorf 说,“我们早在 pureXML 出现之前就意识到了 XML 的价值;我们知道它正是我们所需要的。”

【编辑推荐】

  1. DB2数据库优化的6种技巧
  2. DB2数据库开发常见问题解答
  3. DB2数据库的安装目录结构介绍
  4. shell抽取db2数据库数据的方法示例
  5. DB2数据库的连接方法简介

 

责任编辑:佚名 来源: yesky.com
相关推荐

2010-08-04 08:52:35

2010-07-29 14:54:21

DB2 9 XML

2010-07-29 14:41:12

DB2 9 XML

2010-08-04 09:29:32

2011-03-21 09:51:04

DB2性能优化

2011-05-16 14:52:19

DB2 9 Viper

2010-11-01 13:45:16

DB2数据库的优势

2010-09-06 14:39:06

DB2 9

2010-08-11 15:41:24

DB2 9

2010-07-29 17:26:31

DB2 9 Viper

2010-08-17 17:29:06

DB2性能优化

2010-11-03 15:19:46

DB2装入命令

2010-05-28 14:11:57

ibmdw数据库性能调优

2009-06-25 10:30:30

2010-08-05 13:45:57

存入DB2 代码

2010-08-04 09:45:30

2009-04-17 10:07:42

2011-05-27 15:11:04

DB2

2011-05-27 14:28:33

DB2

2011-05-13 10:06:17

DB2 9
点赞
收藏

51CTO技术栈公众号