当前位置: 首页 > news >正文

HammerDB:一款免费开源的数据库基准测试工具

HammerDB 是一款免费、开源的数据库负载生成和基准测试工具。它主要用于评估数据库系统的性能、可扩展性和吞吐量,特别侧重于 TPC-C 和 TPC-H 基准测试模型。

功能特性

  • 跨平台:HammerDB 基于 Tcl/Tk 语言开发,支持 Windows 和 Linux 操作系统。这使得它可以在各种环境中运行,无论是本地服务器、虚拟机还是云环境。
  • 免费开源:HammerDB 遵循 BSD 开源许可证,可以免费下载、使用和修改源代码,没有隐藏费用或者功能限制。
  • 多数据库:HammerDB 支持多种主流数据库,包括 Microsoft SQL Server、IBM Db2、Oracle、PostgreSQL、MariaDB、MySQL 以及 Amazon RDS。
    简单易用:HammerDB 提供了易于使用的图形界面,方便用户配置数据库连接、定义测试参数(虚拟用户数、仓库数、运行时间等)、创建 Schema、加载数据、运行测试和监控进度等。
  • 标准测试模型:HammerDB 工作负载 TPROC-C 以及 TPROC-H 分别实现了事务处理性能委员会(TPC)制定的标准基准测试模型 TPC-C 以及 TPC-H,这两种模型分别对应在线事务处理环境以及决策支持系统。
  • 虚拟用户:HammerDB 使用虚拟用户来模拟并发数据库连接和操作,支持配置大量虚拟用户测试数据库在高并发负载下的表现。虚拟用户的行为(思考时间、按键时间等)可以配置,以模拟更真实的用户场景。
  • 自动化测试:HammerDB 提供命令行接口,允许将测试过程完全脚本化,便于集成到自动化测试流程、持续集成/持续部署管道中。可以定义复杂的测试场景,并且重复执行以获取稳定的结果。
  • 性能监控与报告:可以在测试运行期间实时显示关键性能指标,如每分钟事务数、虚拟用户状态、错误信息等;并且在测试完成后生成详细的性能报告,核心指标是 NOPM(系统每分钟能够成功完成的“新订单”事务的数量)。同时还可以捕获操作系统的性能计数器(如 CPU、内存、磁盘 I/O、网络),并将结果导出用于进一步分析或生成图表。

下载安装

HammerDB 可以免费下载安装,官方下载网址:

https://www.hammerdb.com/download.html

选择对应操作系统文件进行下载安装,完成后双击 hammerdb.exe(Windows)运行:

另一个安装方式就是使用 Docker 镜像,使用下面的命令下载针对所有数据库的完整映像或者用于特定数据库的映像。

docker pull tpcorg/hammerdbdocker pull tpcorg/hammerdb:mysql
docker pull tpcorg/hammerdb:maria
docker pull tpcorg/hammerdb:oracle
docker pull tpcorg/hammerdb:postgres
docker pull tpcorg/hammerdb:mssqls

然后启动容器:

docker run --network=host -it --name hammerdb hammerdb bash

其中,–network=host 用于添加添加主机网络,支持远程数据库通信。

接下来可以通过官方文档中的快速入门开始了解 HammerDB 的使用:

https://www.hammerdb.com/docs/ch02.html

http://www.dtcms.com/a/304286.html

相关文章:

  • YOLOv11.pt 模型转换为 TFLite 和 NCNN 模型
  • PDF转Word免费工具!批量处理PDF压缩,合并, OCR识别, 去水印, 签名等全功能详解
  • CodeRush AI 助手进驻 Visual Studio:AiGen/AiFind 亮相(三)
  • Visual Studio的妙用
  • [极客大挑战 2019]FinalSQL
  • 如何查询并访问路由器的默认网关(IP地址)?
  • 大规模矩阵构建与高级算法应用
  • Unity 编辑器开发 之 Excel导表工具
  • Python爬虫01_Requests第一血获取响应数据
  • 香橙派One安装OctoPrint 实现控制3D打印机
  • WebRTC 2025全解析:从技术原理到商业落地
  • 容器技术原理(一):从根本上认识容器镜像
  • Linux boot 目录损坏如何修复:从救援模式到系统恢复
  • APK重打包流程
  • K8s集群两者不同的对外暴露服务的方式
  • 如何迁移gitlab到另一台服务器
  • Makefile 快速入门指南
  • LangChain和LangGraph 里面的 `create_react_agent`有什么不同
  • 机器学习—逻辑回归
  • VitePress学习-自定义主题
  • 使用 Django REST Framework 构建强大的 API
  • 在依赖关系正确的情况下,执行 mvn install 提示找不到软件包
  • Python Day17 面向对象 及例题分析
  • Apache Ignite 的分布式队列(IgniteQueue)和分布式集合(IgniteSet)的介绍
  • 集成电路学习:什么是Wi-Fi无线保真度
  • 机器学习sklearn:泰坦尼克幸存预测(决策树、网格搜索找最佳参数)
  • 永磁同步电机无速度算法--静态补偿电压模型Harnefors观测器
  • 泛微E9 引入高版本spring导致webservices接口报错
  • vue2 使用liveplayer加载视频
  • 【初识数据结构】CS61B中的基数排序