开源GIS实验田

OpenSource GIS Space

  • 内容导航

    Creative Commons
    本站文章全部原创
    转载请遵循创作共用协议
  • 最新评论

    • Gao Ang: 《OSGeo开源地理信息项目最新进展》...
    • Zhu Xiaoyang: 你好!我参加了您的讲座,想向您索...
    • Gao Ang: zhangtujin,OSGeo中国组织的所有讲座活...
    • zhangtujin: 请问个问题,今天报名参加了讲座,...
    • zhaoyang: 谢谢你,很实用。请问有没有Endnote文...
  • 热门主题

  • 随机阅读

    • 三月 2010
      « Feb    
      1234567
      891011121314
      15161718192021
      22232425262728
      293031  
    • GaoAng Profile

      GaoMiao's Portrait
      有了理想
      就不要寻找放弃的理由

      站点搜索

    • 只言片语

      “Talent does what it can; genius does what it must.”-Edward George Bulwer-Lytton (1803-1873)
    • 青春须早为,岂能长少年。 ——孟郊

    TPC-C基准的数据库Benchmark工具

    4th 六月 2009

    作者: Gao Ang 可以转载,请以超链接标明原始出处和作者信息及版权声明
    网址: http://www.gaoang.com/archives/127

    事务处理性能委员会(TPC)是创建于1988年的非盈利组织,其宗旨是为了制定事务处理和数据库性能测试基准程序的Benchmark标准规范,目前被广泛用于计算机系统和数据库性能评估。

    基准程序TPC-C用于测试联机事务处理(OLTP)的性能,规范的最新版本是5.10。测试过程模拟一个真实的货物管理环境,批发公司有N个仓库,每个仓库供应M个地区,在每个地区为上千名客户提供服务。在测试启动后,N×M个终端操作员向数据库发出新订单(New-Order)、付款(Payment)、订单状态(Order-Status)、库存级别(Stock-Level)、发货(Delivery)等5类事物请求,而性能指标tpmC则代表事务在满足响应时间要求的前题下,每分钟系统处理新订单(New-Order)的数目。

    面向数据库系统的TPC-C基准测试,有多种程序实现,商用软件有QUEST公司的Benchmark Factory,以及HP的 LoadRunner,但用TPC-C标准测试数据库性能,也有小巧的开源工具来帮助我们完成这样的工作。

    针对Oracle的性能测试,Java编写的SwingBenchHammerora都是不错的选择。但对于Ingres和PostgreSQL等小众数据库的测试,需要其他基于JDBC驱动的通用数据库测试工具来完成。

    Apache JMeter是基于Swing的系统性能和负载能力测试工具,同样也可以测试数据库的吞吐能力,并且JMeter在NetBeans 6.7中可以同Profiler工具集成使用,在IDE环境下创建并运行JMeter装载测试脚本。JMeter内置的数据库测试,可以在JMeter的多线程框架下,帮助用户分析数据库所能承载的并发用户数和负载能力,并提供图形化结果反馈,但这款功能全面的测试工具没有提供基于TPC-C基准的数据库测试功能。

    作为专用的TPC-C测试工具,开源Java工具BenchmarkSQL更为适合,可以通过JDBC驱动添加各种数据源进行基准测试。工具里面内置了sqlTableCreates、sqlIndexCreates等SQL脚本,在推荐的测试条件下,使用预置脚本创建10个Warehouse,并在数据库中生成100万条测试数据,执行时间最小为1分钟,之后会生成包含5种不同操作的执行时间统计,以及最终tpmC值的结果报表。

    感兴趣的用户还可以将默认的索引方式(如ISAM)更改为数据库支持的其他索引(如B树R树索引),来比较不同索引方式下事务处理的性能差异。

    Leave a Reply

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>