寻找用于SQL脚本执行的通用库(a.k.a. RDBMS基准测试库)

时间:2011-04-09 17:56:39

标签: sql benchmarking rdbms

我想知道是否存在一个抽象以下DBMS操作的库:

  1. 加载数据(一堆CSV文件或SQL插入语句)
  2. 执行一堆查询
  3. 获取上述测量值(吞吐量,延迟等)
  4. 基于以上内容的报告生成(图表等)。
  5. 我有一堆用于不同数据库的DDL / DML文件(例如TPC-H,SSB等),我希望能够加载数据并运行查询到许多DBMS,而不必担心其特殊性特定的DBMS(MySQL,SQLServer,Oracle等)。

    到目前为止我发现的关闭事件是these。它们的问题在于,它们特定于给定的工作负载(在大多数情况下为TPC),因为特定于域的对象被建模为类(Java或C ++)。我正在寻找的是与域无关且与DBMS无关的。

3 个答案:

答案 0 :(得分:1)

这可以通过DbUnit和JMeter的组合来完成。

DbUnit与DBMS无关(尽可能),可用于将CSV文件加载到数据库中。

JMeter可以针对任何具有JDBC驱动程序的DBMS运行SQL语句,并可用于衡量每个语句的性能。

答案 1 :(得分:0)

我认为最好使用ORM。像Ruby的ActiveRecord,Perl的类:DBI或DBIx :: Class甚至java的Hibernate。

Ruby的ActiveRecord已经为使用MySQL,PostgreSQL,SQLite,Oracle,SQLServer和DB2提供了内置支持,而hibernate似乎可以使用更多的数据库(Hibernate Supported Databases

使用ORM,您可以使用统一的方式处理数据库。当然,查询必须用ORMs语言(Ruby,Perl,Python,Java等)编写,而不是用SQL编写。但是通过这种方式,您还可以确保在所有数据库引擎中执行等效操作,并且您只需为所有数据库维护一个“DDL / DML”指令文件。

希望这有帮助

答案 2 :(得分:0)

OLTPBench符合所有规定要求的费用:

  

基准测试非常有用,但却无穷无尽。这个基准测试套件是一组博士/博士后/教授聚在一起并结合他们的工作量/框架/经验/努力的结果。我们希望这将节省其他人的时间,并将提供可扩展的平台,可以以开源方式发展。

     

OLTPBenchmark是一个多线程负载生成器。该框架旨在能够针对任何支持JDBC的关系数据库生成可变速率,可变混合负载。该框架还提供数据收集功能,例如,每事务类型延迟和吞吐量日志。

     

与框架一起,我们提供以下OLTP / Web基准测试:

     
      
  • TPC-C
  •   
  • 维基百科
  •   
  • Synthetic Resource Stresser
  •   
  • 微博
  •   
  • Epinions.com
  •   
  • TATP
  •   
  • AuctionMark
  •   
  • SEATS
  •   
  • YCSB
  •   
  • JPAB(Hibernate)
  •   
  • CH-基准
  •   
  • 选民(日语“美国偶像”)
  •   
  • SIBench(快照隔离)
  •   
  • SmallBank
  •   
  • LinkBench
  •   
  • CH-基准
  •   
     

这个框架的设计允许轻松扩展,我们提供存根代码,贡献者可以使用它来包含新的基准,利用所有系统功能(记录,控制速度,受控混合等)。