XML数据库性能测试系统的设计

关键词:

随着电子商务等的广泛应用, 关系型数据库在处理信息的复杂化、多样化、灵活性、可读性等方面的不足日益明显。特别是目前Web Service的蓬勃发展, XML越来越多地活跃在数据交换和存储领域, 其数据量指数级的增长, 要求更有效的数据管理能力和更快、更精确的查询, 而这是传统关系型数据库领域所没有涉及到的。

XML作为可扩展标记语言, 具有扩展性、自描述性、自相容性等优点, 日益成为Internet上数据表示和数据交换的标准。为了有效管理大量XML数据, 各数据库厂商纷纷对他们的数据库产品进行了功能扩展以满足处理XML数据的需求。当前有很多不同技术种类的XML数据库系统, 比如文献[1]中提到的XML-Enabled Database, Native XML Database, XML Query Engine等, 既有众多的商业系统, 比如文献[3]中的Tamino, 也有许多开源或者原型系统, 比如Xindice和OrientX。这些XML数据库良莠不齐, 给用户选择合适的产品带来了一定困难, 本文针对用户最关心的性能问题, 提出了一套适用于XML数据库的评价指标, 并对测试系统进行了设计。

1 XML数据库性能评价方法

1.1 性能评价指标

传统的数据库性能测试一般以查询响应时间或吞吐量作为性能指标。例如在TPC~C基准测试中, 主要依靠吞吐量来评价数据库性能, 其指标有。

(1) 流量指标 (Throughput, 简称tpmC) , 按照TPC的定义, 流量指标描述了系统在执行Payment、Order-status、Delivery、StockLevel这四种交易的同时, 每分钟可以处理多少个New-Order交易。所有交易的响应时间必须满足TPC-C测试规范的要求[4]。

(2) 性价比 (Price/Performance, 简称Price/tpmC) , 即测试系统价格 (指在美国的报价) 与流量指标的比值。

但是这些指标并不能满足XML数据库的要求。在存储方面, XML文档以复杂或无规则的结构和混合内容为特征, 而且文档的物理结构非常重要;在索引方面, XML数据库必须建立从标记值或属性值到元素偏移量的映射;在查询方面, XML查询语言如XPath和XQuery将路径表达式作为核心内容, 对数据进行导航式的遍历。综上所述, 单一的流量指标并不能衡量XML数据库的性能, 还需考虑更多因素, 建立新的指标体系, 才能提高性能评价的准确度。本文基于上述特征, 从XML文档建立、索引建立、吞吐量和插入操作四个角度出发, 设计了以下四个指标:

(1) 文档建立时间:描述在数据库中建立XML文档时, 建立一个XML文档所需要的时间。

(2) 索引创建时间:描述在数据库中建立索引时, 建立全部索引所需要的时间。

(3) 流量指标:描述数据库在处理基本事务时, 每分钟可以处理多少事务。

(4) 插入操作量:描述数据库在进行插入操作时, 每分钟处理的插入操作量。

1.2 性能基准测试工具

性能基准测试是指根据性能基准设计检测程序, 搭建检测环境, 进行性能测试, 并把检测结果与相同检测程序在相同系统或另外系统上的运行结果相比较的整个过程。目前针对XML数据库的基准测试有XMach~1, XPathMark, XBench, TPoX等等。这些测试工具大都仅针对数据库的某个方面进行测试, 如XQuery的查询性能等。相对来说, TPoX针对整体事务处理能力最强。

TPoX (Transaction Processing over XML) 是一款基于金融场景的针对XML数据库的性能基准测试工具[5]。它主要用来评估XML数据库的以下性能:XQuery, SQL/XML, XML存储, XML索引, XML Schema验证, XML更新, 并发操作等。TPoX由负载驱动程序, 测试用XML Schema, 测试用XML数据, 示例负载描述文件和事务模板组成。

TPoX的数据模型是基于金融系统中的交易场景。它包括2个业务实体:客户和经纪行。客户通过订单Order来买卖证券, 经纪行根据客户的请求来处理交易。该系统的核心便是一个支持XML功能的数据库, 它的性能决定了该应用的性能[3~5]。

TPo X的功能强大、可配置性强, 可以根据需求对数据库进行测试。通过对事务模板和负载描述文件进行配置, 可以模拟真实场景, 来获得数据库的整体性能测试结果。本文采用TPoX作为基准测试工具。

2 性能测试系统的设计

2.1 系统结构设计

整个XML数据库性能测试系统由三个模块组成。

2.1.1 数据处理模块

该模块作为整个性能测试系统的重要组成部分, 处理了联机测试前的大量准备工作。它使用被测数据库管理系统的工具创建相应的数据库和表, 通过配置参数优化其性能, 然后将数据导入到数据库中, 最后创建索引。

2.1.2 联机测试模块

该模块整个系统的核心部分, 由两部分组成, 一部分为TPoX的事务处理工具, 另一部分为插入测试工具, 通过测试每分钟事务数和XML插入操作量来评价数据库性能。

2.1.3 结果分析模块

该模块通过分析前两个模块中产生的日志文件, 来得出一定条件下被测数据库管理系统的文档建立时间、索引创建时间、流量指标和插入操作量等。

2.2 实验及结果分析

实验在一定的硬件环境下 (MS Windows XP Professional SP3, 双核CPU 2.40GHz, 4G Memory) 进行, 使用DB2 V9.5和Oracle10G作为被测试数据库, 模拟10个并发用户, 创建一个XML文档大小为20k。测试结果如表1所示。

由此可知, DB2 V9.5在XML数据操作上的性能要明显优于Oracle 10G, 可能是由于DB2 V9的pureXML技术是采用原生存储XML文档, 也就是说, 在内部以树型格式存储XML文档。使用该方法在XML文档的搜索和检索方面可以取得更好的性能, 并且能减少某些程序中代码的行数。

3 结语

XML数据库技术正在高速发展, 目前已经有若干种XML数据库产品问世并服务于社会生活的各个方面。但是, XML数据库的事业才刚刚开始, 还有很多问题等待着我们去解决。特别是在性能测试方面, 相关研究和工具还比较缺乏, 但它又是数据库管理系统开发、调优、选择中不可或缺的环节。本文针对XML数据库的特征, 提出了一套以四个指标为核心的评价体系, 分三个模块对测试系统进行了设计, 并完成了相关实验, 接下来还需对测试系统进行优化研究。

摘要:随着XML逐渐成为Internet上数据表示与数据交换的标准, 为了有效管理大量XML数据, 各数据库厂商纷纷推出支持XML数据的数据库产品。如何对这些数据库产品的性能进行评价成为用户选择的难题之一。本文基于传统的数据库性能指标, 结合XML数据库的特点, 提出了一套新的指标体系, 并对测试系统进行了设计, 最后在DB2V9.5和Oracle10G上进行了验证。

关键词:XML,数据库,性能测试,指标

参考文献

[1] Harald Schoning.Tamino:A DBMS Designed for XML[C].Proc.of ICDE2001, Washington, DC:IEEE Com-puter Society, 2001:149~154.

[2] 冯建华, 钱乾, 等.纯XML数据库研究综述[J].计算机应用研究, 2006, 23 (6) :1~7.

[3] Feng Tian, David J DeWitt, et al.The Design and Performance Evaluation of Alternative XML Storage Strategies[J]. ACM SIGMOD Record, 2002, 31 (1) :5~10.

[4] 汪徽志, 岳泉, 等.网络数据库评价指标体系构建[J].情报科学, 2008, 26 (4) :556~560.

[5] 冯斌, 赵雷, 杨季文.一个数据库老化测试工具的设计与实现[J].计算机应用与软件, 2009, 26 (1) :153~155.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:桥梁规范条文数据库管理系统的建立 下一篇:店铺销售数据分析系统