决策支持评测系统的设计与实现

时间:2022-09-18 02:07:13

决策支持评测系统的设计与实现

摘要:一个实用的通用型数据库性能测评工具对国产通用型数据库产品的开发和推广都是必不可少的。文章通过决策支持评测系统在大数据量上执行高复杂度的查询语句,模拟复杂的商业分析应用,最终评测数据库对于复杂查询语句的处理能力。根据TPC-H测试基准的要求,设计并实现了一个基于TPC-H的决策支持评测系统,并利用该系统完成了对国产数据库Redbase的测试。

关键词:决策支持评测;TPC-H;数据库;设计模式;体系结构

0引言

随着计算机技术在各行各业的广泛应用,数据已经成为各行各业的宝贵资料。数据库管理系统是政府和大型企业的信息系统的核心软件,数据库性能的好坏直接影响着整个应用系统的正常运行。目前国产数据库在技术上已经取得了长足的进展,但是在实际推广应用过程中还存在不少障碍。在国产通用型数据库产品的发展过程中,数据库测评工具将发挥不可忽视的作用。本文设计实现了一个数据库测试系统:决策支持评测系统[1]。

1决策支持评测系统的设计思想

国际事务处理性能委员会(TPC)定义了一系列数据库系统基准程序的标准。当前正在使用的性能测评标准有以下三种:(1)针对OLTP系统的性能测试基准;TPC-C;(2)针对数据仓库或决策支持系统的性能测试基准:TPC-H;(3)对电子商务应用的性能测试基准:TPC-W。本文基于TPC-H测试基准,设计实现了一个决策支持评测系统。

决策支持评测系统的基准类型是联机分析处理。联机分析处理面向决策人员,支持管理需要,以便企业占有更大的市场,获得更好的投资回报。在待测数据库中,绝大部分数据是静态的、导出的、综合性的数据,同时数据处理量很大。

决策支持评测系统的商业环境如图1所示。决策支持评测系统是在待测商业环境上,进行事务处理后,对商业环境进行分析。而另外两种数据库性能评测系统是在待测商业环境上,进行事务处理,实时分析待测商业环境的操作效果。由于实际运行的商业模型,会有多个用户同时访问数据库,因此在对待测系统执行复杂查询语句的过程中,还需要模拟其它用户的操作,决策支持评测系统利用更新函数来完成这部份功能的模拟。

决策支持评测系统的设计思想是,在给定系统、数据库和特定复杂查询语句的前提下,通过测量查询语句和更新语句的执行时间来测试待测数据库和硬件的性能。

决策支持评测系统使用的商业模型是模拟一个世界范围内的销售供应商。待测数据库的数据模型如图2所示,包括八张相互独立的基表。它们之间存在的引用关系,在图中用箭头表示。

数据库的大小用规模因子(sF)来定义,例如规模因子l代表待测数据库中的数据量大约是1G。

2决策支持评测系统的体系结构设计

决策支持测评系统可以采用两种体系结构模型:基于本机和C/S模型。虽然基于本机构架实现的测评系统比较简单,但是不能很好地满足当前决策支持系统实际操作的需要。因此本文使用了C/S模型,如图3所示。

决策支持评测系统的体系结构模型主要是由驱动器模块和待测系统模块组成。对于基于本机的构架,待测系统是本机系统;对于C/S构架,待测系统为服务器。驱动器模块的作用就是用于发送查询语句和更新语句给待测系统,同时测试它们的执行时间。驱动器是一个逻辑实体,它可以通过一组物理程序、过程或系统来实现。待测系统执行完这些查询语句并将结果返回给驱动器。

驱动器模块主要由数据生成子模块、查询转换子模块、查询分析子模块组成,如图4所示。驱动器模块主要实现的功能包括:(1)产生查询流中查询语句的执行序列;(2)维护查询文本和查询输出结果的日志记录;(3)产生每条查询语句的可执行查询文本;(4)产生每条查询语句中的替换参数;(5)利用产生的替换参数替换每条查询语句中的待替换参数并最终产生完整的可执行查询文本;(6)发送每一条完整的可执行查询文本给待测系统执行;(7)发送每一个可执行的更新语句给待测系统执行;(8)接收待测系统执行完每条查询语句后返回的数据;(9)计算查询语句,更新语句的执行时间。

2.1查询模板

决策支持评测系统中的查询语句非常重要,这些查询语句都具有现实意义,专门用于模拟商业用户活动;并且没有模拟任何特殊的商业活动,而仅仅是对商业领域中必须进行的重要的基本商业活动进行模拟,例如:商品的管理、商品的买卖、商品在销售范围内的分销等。

决策支持评测系统中使用的查询语句具有下列特点:有较高的复杂性;描述不同的商业问题;模拟产生随机查询语句;访问范围将最大限度地覆盖待测数据库中所有数据。

系统提供的查询模板是带参数的查询语句。经过查询转换子模块后,查询模板中的参数将被确定的值替换,同时可以检验在当前替换值下,查询语句的返回结果是否正确。

2.2更新函数

在进行实际测试的过程中,为了模拟真实的商业工作环境,需要对后台数据库中的数据进行更新,在测试过程中这部分工作使用更新函数来实现。

更新函数主要向数据库表进行插入和删除操作。使用的两个更新函数分别是:新增订单函数RFl(该函数增加新的信息到数据库中);删除旧订单函数EF2(该更新函数从数据库中删除旧的信息)。更新函数操作涉及的数据集是相关表数据的千分之一。

2.2.1数据生成子模块

数据生成子模块主要功能是生成数据文件和更新数据文件。待测数据根据待测试数据库的自身特点和数据库模式,使用随机函数产生。数据文件是测试时使用的基础数据,利用待测数据库自带的装载工具将数据装载到相应表中;更新文件中的数据将由更新函数在测试过程中使用。

2.2.2查询转换子模块

查询转换子模块主要完成查询模板中待替换参数的替换工作。查询转换子模块相当于是―个过滤器。它一次读取查询模板中一行,察看其中是否含有待替换参数,针对每个待替换参数的具体含义,产生符合要求的随机数据来代替待替换参数。主要涉及到的替换内容包括:事务开始、结束的语句,连接到数据库的语句,查询返回指定行语句,查询号,流号,打开查询计划的语句,参数替换。

2.2.3查询分析子模块

在运行查询转换子模块后,查询模板变成了可执行的查询语句。但仅仅执行这些查询还不够,还要设置查询运行时的隔离级别,记录每条查询开始的时间和结束的时间等。

3决策支持评测系统的测试实现

决策支持评测系统主要操作包括:测试前的准备工作和性能测试。测试前的准备工作包括:设置环境变量,建立待测环境。在进行测试前准备工作和开始性能测试之间,系统发生的所有操作都要受到限制,因为这些操作都不会提高系统测试结果。

性能测试过程分两步来进行,第一步是进行功率测试,第二步是进行吞吐量测试。如果第一部分发生错误,那么整个测试过程必须从头开始重做。如果第二步发生错误,只需重启机 器而不需要从头开始。功率测试和吞吐量测试的执行必须限制在相同的测试环境下,使用相同的软硬件环境、系统参数,并且在执行过程中需要满足ACID属性。性能测试的执行流程如图5所示。

(1)功率测试子模块的实统

功率测试用来测试单个测试用户和待测系统连接时,待测系统的原始查询执行能力。

功率测试的测试流程:执行更新函数RFl;执行查询语句;执行更新函数RF2。每条查询语句和两条更新语句之间的时间间隔将在性能度量中使用。

(2)吞吐童测试子模块的实现

吞吐量测试用来测试待测系统以最少时间进行最多查询操作的能力。吞吐量测试采用多用户并发模式,并发执行多条查询流,每一条查询流都按照一定的顺序执行查询语句。在吞吐量测试过程中,有一个更新流在和查询流同时进行。

下面是使用本测试系统对于国产数据库RedBase 7.5的测试数据。

Composite Query per Hour Rating(QphH@Size):6.80

System Configuration

Database Manager:RedBase 7.5

Operating System:windows2000 advanced server

Other Software:NO

Processors:奔腾2.8G

Memory:1GB

Total Disk Storage:80GB

Numerical Quantities Summary

Measurement Results:

Database Scaling(SF/Size)=O.1

Query Streams for Throughput Test=3

TPC-H Power Metric(QppH@0.1 GB)=5.98

TPC-H Throughput Metric(QthH@0,1GB)=1.78

Composite Query-per-Hour Rating(QphH@0.1 GB)=3.26

综合每小时查询性能指标(QphH@Size)即为性能测试的指标。通过把测试用的原始数据量、并发用户数、每个查询与数据更新操作的处理时间等进行综合加权计算,即可得出综合每小时查询性能指标(QphH@Size)。综合性能指标值越大越好。

在决策支持评测系统测试中,待测试系统规模参数的大小是衡量测试结果的决定性因素,但目前我们仅仅实现了O.1G数据规模的测试。在以后的工作中还需要根据硬件条件提高规模参数。

4结束语

根据本文所述决策支持评测系统的实现原理,本文设计实现了决策支持评测系统的网络版,并且成功地利用它对国产数据库Redbase进行了测试。本文的工作不仅为数据库决策支持功能的测试技术提供了参考,同时有助于Redbase数据库的进一步完善。

(注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。)

上一篇:微型计算机系统软件抗干扰方法研究 下一篇:时钟频率和二级缓存大小对CPU效率的影响