基于TPCC基准数据库系统性能测试的实现计算机系毕业论文(DOC 45页).doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《基于TPCC基准数据库系统性能测试的实现计算机系毕业论文(DOC 45页).doc》由用户(2023DOC)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于TPCC基准数据库系统性能测试的实现计算机系毕业论文DOC 45页 基于 TPCC 基准 数据库 系统 性能 测试 实现 计算机系 毕业论文 DOC 45
- 资源描述:
-
1、本 科 生 毕 业 论 文(设 计)中文题目:基于TPC_C基准数据库系统性能测试的实现外文题目:The Implementation of Database System Performance Testing Based on TPC_C Benchmark41 / 45基于TPC_C基准数据库系统性能测试的实现摘 要数据库系统是目前web系统普遍使用的系统,当前有很多流行的数据库,比如DB2,Oracle、SQL等大型数据库,数据库系统的性能决定着系统的总体性能,数据库的性能如何评价,评价的指标都包含哪些容等问题都是对数据库进行整体评价必须做出回答的。基于以上的问题,本文主要介绍了数据库
2、性能的评价指标、测试方法、容,以SQL数据库为测试对象,实现了基于TPC_C(TPC BnechmarkTM C)测试基准的测试事务模型,并采用当前流行的数据库测试软件LoadRunner通过脚本的录入、不同场景设置等对该系统进行测试,找出系统的瓶颈并进一步提出该进方案。关键词:数据库SQL Sever LoadRunner 性能测试The Implementation of Database System Performance Testing Based on TPC_C BenchmarkAbstractDatabase system is a system commonly used
3、in web systems, currently there are many popular databases such as DB2, Oracle, SQL Sever etc. The database systems performance determines the overall system performance. How to make an overall evaluation of the performance of the database? What evaluation indicators should be included? All these is
4、sues about the overall evaluation of the database must be made to answer. Accounting for the above issues, this paper describes the performance evaluation of database, test methods.Content to SQL database as the test object, this paper achieves the TPC_C (TPC BnechmarkTM C) benchmark tests based on
5、transaction model and uses the popular database test softwareLoadRunner to make test on the system by script entry and different scene settings to identify system bottlenecks and further into the scheme of the improvement.Key Words:Database SQL SeverLoadRunnerPerformance Testing目 录摘要IABSTRACTII目录III
6、1绪论11.1 课题研究背景与意义11.2 国外数据库性能测试的研究状况11.3 本文的主要工作41.4 本文组织结构42数据库性能测试52.1数据库性能测试方法与容52.1.1 性能测试分类52.1.2 性能测试指标62.2 性能测试工具LoadRunner介绍72.2.1 LoadRunner的特点72.2.2 LoadRunner功能描述82.2.3 LoadRunner测试步骤83. 基于TPC_C基准事务的实现93.1 TPC_C基准总述93.1.1 TPC_C 简介93.1.2 TPC_C测试指标103.2 基于TPC_C基准数据库设计123.2.1 SQL Server 2000
7、 中表的设计123.2.2 表的结构关系143.2.3 TPC_C基准数据录入153.3 基于TPC_C基准事务模型的实现173.3.1 NEW ORDER(新订单)事务的实现173.3.2 PAYMENT(支付)事务的实现193.3.3 DELIVERY(发货)事务的实现213.3.4 STOCK LEVEL(库存状况查询)事务实现223.3.5 ORDER STATUS(订单状况查询)事务的实现224. 测试方案与结果分析244.1 测试方案244.2 测试场景设置294.3 测试结果分析324.4 系统瓶颈分析385. 全文总结和展望405.1全文总结405.2 展望40参考文献41致4
8、21绪 论1.1 课题研究背景与意义随着软件业的迅猛发展,系统开发的结构层次在不断地加深,数据库从以前一个默默无闻的后台仓库,逐渐演变为今天的数据库系统,他在很多系统的设计中起着举足轻重的作用,对于其性能的要求也越来越高,数据库测试开发也逐渐演变出一些适合其特点的测试方法和工具7。数据库的测试同其他软件测试一样,包含性能测试和功能测试两种。其中功能测试的目的是验证系统是否实现了用户要求的所有功能要求;而性能测试的目的是验证软件系统是否能够达到用户提出的性能指标发现软件系统中存在的性能瓶颈,最后起到优化系统的目的。评价一个数据库仅仅通过其功能是否实现是远远不够的,性能的好坏与否也是一个非常重要的
9、指标。目前,有各种各样的功能强大的数据库测试工具,但是能正确的使用工具开发合适的脚本、创建测试场景和正确的根据自己需要的测试参数选择合适的测试工具是需要丰富的经验与技巧的。基于前人的经验,本文具体分析和实现了基于TPC_C基准的数据库性能测试。1.2 国外数据库性能测试的研究状况随着数据库性能测试的不断升温,对数据库的测试方法和容也是层出不穷。清华大学就曾对通用海量数据库性能的测试和实现6进行了研究。在这篇论文中作者为了能够反映出数据库实际的运行性能,其设计了一种可配置数据库性能的测试基准,这种基准能够针对具体的应用数据库系统,建立吸纳供应的控制模型。这个基准包含了几种模型,包括控制模型、数据
10、模型和事务处理模型,其中控制模型主要是描述了数据库的运行模式,而数据模型则描述的是用户访问数据库的数据集合,事务处理模型主要是描述用户访问数据库的行为模式。控制模型同事务处理模型和数据库模型组装动态SQL语句,然后产生多个并发进程模拟大量实际用户访问数据库,以测试数据库的运行状况和性能。这个测试标准,与目前国际上通用的固定模型测试标准如TPC_C等相比,更能够客观反映数据库实际运行性能。这说明,在国我们也开始慢慢寻找出更加符合实际的标准来对数据库进行测试。但是这一项目仅对数据库的正确性和可用性进行了相关设计和实现,如果要想形成像TPC_C那样通用的且能对数据库的各方面性能都能进行测试的方案,还
11、需要进一步的研究。东北大学就曾对TPC_C测试标准与其在面向对象数据库14上的设计与实现一文中也指出,数据库测试标准主要用途是数据库的开发者通过对其系统的性能测试和评价,而对系统进行改进和完善,用户根据不同系统的测试数据,而选择性能优良的系统。作为新生代的面向对象数据库系统,OO数据库系统可在具有复杂数据结构的场合得到应用,并且其也可能广泛地应用于在线事务处理中。但是为我们所熟知的TPC-C基准仅给出了数据模型、事务处理和测试指标的定义,研究数据库测试技术以与TPC-C基准在面向对象数据库中的使用也是大有裨益。由以上两个方面的例子可以说明,在国,不管是研究新的测试标准研究在现有标准上增加新的应
12、用等方面都开展了许多工作,相信在不久的将来,国将会出现一套完整的数据库测试方法。数据库系统测试作为软件测试的一个重要分支,在详细阐述其之前,我们有必要对软件测试进行一个概述。鉴于目前国对软件测试的重视程度在不断地提高,许多软件测试方面的材料和研究也在不断地推进,以前的那种对软件测试“可有可无”的态度得到了很大的改善,他已变成了软件开发的一个必不可少的一个环节,很多软件开发公司都有自己的软件测试小组。所谓的软件测试一般看来就是根据软件开发各阶段的制约和软件的部结构,精心设计很多的测试用例,包括一些极端的测试用例,这些用例的容包括输入数据以与预期的输出结果,应用这些测试用例来不断地运行程序,发现其
13、中不符合质量的特性要求,亦即软件的缺陷和错误。另一方面,软件的测试是贯穿整个软件开发的生命周期中,所以软件的需求设计、规格说明书以与程序等都要包含测试的相关容。至于数据库测试种类,从测试过程的角度可以分为系统测试、集成测试和单元测试。接下来对这几种测试进行简要介绍。一、系统测试系统测试包括了不同的测试组成部分,其主要目的就是充分地运行系统,并进一步验证系统各部件是否都能够正常地完成所赋予的任务,所以当产品需求和系统设计的文档完成以后,系统测试的小组成员就应该提前开始制定出相应的测试计划和设计几个不同的测试用例,不必等到“实现与测试”阶段完成以后在进行。这样做的一个主要目的就是可以大幅提高系统测
14、试的效率。其测试工具有主要用于评估测试各种不同系统参数下的数据库负载情况的模块化、跨平台、多线程基准测试工具sysbench。这一阶段的测试主要是通过数据库设计评审来实现。二、集成测试集成测试主要是对接口进行的测试工作。其主要考虑的是容包括数据项的修改操作、数据项的增加操作、数据项的删除操作、数据表空、数据表满、删除空表中的记录、数据表的并发操作、针对存储过程的接口测试、结合业务逻辑做关联表的接口测试。等价类、边界值、错误猜测等是其采用的主要方法。三、单元测试对于一个软件,要确保其功能是按照最先设计实现,我们可以创建一组测试并在开发过程中使用,这就是所谓的但也测试。单元测试主要侧重的是逻辑覆盖
15、,其可以通过语句覆盖和走读的方式完成。数据库单元测试是测试应用程序不同组成部分间所使用的数据。比如当一个应用程序升级或是重新开发,用户便可设置单元测试用例,验证这个应用程序的数据输出在不同的版本间是否是一致的10。随着数据库测试的不断发展,现在在数据库功能的测试领域中有许多的工具,例如DBunit、QTP、DataFacory等,其中DBunit是一款开源的数据库功能测试框架,其可以使用类似于Junit的方式对数据库的基本操作进行白盒单元测试,对输入输出进行校验。QTP是一款自动测试工具,其通过对对象的捕捉和识别,模拟用户的操作流程,并通过校验方法或结合数据库后台的监控对整个数据库的数据进行测
16、试。DataFactory是数据自动生成工具,通过它可以生成任意的结构数据库,并实现对数据库的填充,可以根据需要产生大量的数据以帮助验证数据库中的各种功能是否正确。1.3 本文的主要工作鉴于目前专门对数据库性能测试的研究还有待深入研究,现有的测试方法缺少了对数据库性能的详细评测,本文研究的创新点和主要容如下:1、对数据库测试的容、指标进行更加深入详细的归纳总结。2、对TPC_C基准数据库的设计与事务模型的实现进行详细的描述。3、本文的实践是基于数据库性能测试标准和数据库负载测试工具Loadrunner,详细介绍了从脚本录制修、测试场景设计到最后测试结果分析的整个过程,为以后对Loadrunne
17、r工具的使用提供参考。1.4 本文组织结构第一章介绍课题背景、国外数据库性能评测基准领域的研究状况以项目的主要工作等。第二章介绍数据库性能测试的主要方法、容、主要测试工具LoadRunner,为课题的设计和实现奠定基础。第三章对TPC_C做了介绍,并详细分析和实现了基于TPC_C基准的事务模型。第四章提出测试方案,并对测试的结果进行分析,与TPC_C提供的标准进行对比,找出系统的瓶颈。第五章对全文进行总结和展望,指出项目的不足和改进的空间。2数据库性能测试2.1数据库性能测试方法与容数据库测试属于软件测试测试中的一类,一般从以下三个方面进行分类:从透明度分为黑盒测试和白盒测试;从开发过程可分为
18、单元测试、集成测试、系统测试等;专门性的测试还包括安全性测试、性能测试和存测试等。由于本文主要针对的是数据库的性能测试,接下来对性能测试的容和指标进行介绍:2.1.1性能测试分类广义的性能测试通常包括压力测试、负载测试、疲劳强度测试、并发(用户)测试、大数据量测试、配置测试、可靠性测试、安全性测试等和性能相关的测试10。通常一次测试也是包括这几种测试中的多种的。以下简要对这几种测试的概念进行具体介绍。(一)负载测试负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、存)
19、等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、存泄漏、不能实时同步等问题。1、负载测试是站在用户的角度去观察在一定条件下,软件系统的性能表现。2、负载测试的预期结果是用户的性能需求得到满足。这些需求指标一般体现为响应时间、交易容量、并发容量、资源使用率等。(二)、压力测试压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下表现状况,从而有效地发现系统的一些功能隐患、系统的容错能力和可恢复能力是否良好等等。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。一般来说,压力测试就是让系统在极端的条件
20、下工作,查看系统的表现,并且这种极端条件是高于系统用户的需求的。(三)、并发测试并发测试是性能测试的最主要部分,其重点关注的是多个用户同时访问同一个应用模块或者是数据是否存在性能问题。它是通过一个包含了负载测试和压力测试的过程,分析各种交易执行指标和资源监控指标来确定系统并发性能的过程。(四)、可靠性测试可靠性测试指通过给系统加载一定的业务压力的情况下,让系统在尽量真实环境下或者仿真的使用环境下运行一段时间,测试系统在这种条件下能否稳定运行。可靠性测试可以有效的暴露在实际使用过程中影响可靠性要求的缺陷。它介于功能测试和性能测试之间,是在功能实现的基础上更接近模拟现实环境下的测试。2.1.2 性
21、能测试指标要进行软件性能测试,首先需要知道软件测试中有哪些性能指标,否则软件的性能测试就无从做起。常见的性能测试指标主要包含以下容:(一)、吞吐量/处理能力处理能力又叫吞吐量,指的是单位时间处理的客户端请求数量。通常,吞吐量用请求数/秒或页面数/秒来衡量。(二)、负载负载分为客户端负载和服务器端负载,客户端负载的简单说就是有多少个用户在同时使用软件,服务器端负载的就是有多少个请求同时到达了服务器端,要求服务器进行处理。(三)、响应时间响应时间是可以判断一个被测应用系统是否存在性能瓶颈的最直观的要素。响应时间一般分为最大响应时间、最小响应时间和平均响应时间。(四)、同时在线用户数量同时在想用户对
22、本系统来说就是在同一时刻,执行各个事务的用户数量总和。(五)、TPS (Transactions Per Second)是应用系统每秒钟完成交易的数量,是估算应用系统性能的重要依据。系统整体处理能力取决于处理能力最低模块的TPS值。2.2 性能测试工具LoadRunner介绍现在软件测试行业里有很多的软件测试软件,但是LoadRunner得到了广泛的应用,综合起来,LoadRunner适用围很广,它可以适用于各种体系架构,其还是自动负载测试工具。它能够模拟上成千上万个并发用户,同时向服务器发送请求,并记录和分析测试结果,最终帮助企业快速、有效的查找和发现问题,通过使用LoadRunner,企业
23、能最大限度地缩短测试时间、优化性能和加速应用系统的发布周期。此外,LoadRunner能支持广的协议和技术,为一些特殊环境提供特殊的解决方案23。2.2.1 LoadRunner的特点LoadRunner的具体特点表现为如下两点:1、轻松创建虚拟用户采用LoadRunner的Virtual User Generator,可以录入我们需要测试脚本并进行修改,进一步可以很简便地创立起系统负载。录入脚本的过程其实就是其记录业务操作流程,但是这个仅是流程的某一个分支,如果需要完整地运行程序,代码的修改是必不可少的。通过这个虚拟用户产生器,可以虚拟用户并模拟真实用户的业务操作行为。利用虚拟用户,可以在W
展开阅读全文