【问题标题】:PostgreSQL: run many selects at one timePostgreSQL:一次运行多个选择
【发布时间】:2017-11-28 11:37:29
【问题描述】:

如何运行例如在 postgreSQL 中一次 1000 个查询?我想测试我的数据库的性能和优化。我想运行许多选择并计算运行时间。

【问题讨论】:

  • 是的,这应该是可能的。但是,一次 1,000 个查询需要同时使用很多。
  • 你为什么不试试呢?
  • 记住配置! max_connections 设置可能需要根据您的测试用例增加。
  • 我为不好的问题道歉。我想知道这怎么可能? - 见编辑。我是否需要建立多个连接,或者是否有任何工具可以做到这一点?

标签: sql postgresql performance select performance-testing


【解决方案1】:

你可以考虑使用Apache JMeter,它支持通过JDBC protocol进行PostgreSQL负载测试

  1. Download Apache JMeter 并在某处解压
  2. 下载 Postgres JDBC Driver 并将 .jar 放到 JMeter 安装的“lib”文件夹中
  3. 运行 JMeter
  4. Thread Group 添加到测试计划并在此处指定所需的线程数、测试持续时间、加速期。
  5. 添加JDBC Connection Configuration 测试元素并在此处指定连接详细信息、凭据和其他参数。
  6. 添加 JDBC Request 采样器并在那里设置您的查询
  7. Run your test
  8. 使用HTML Reporting Dashboard分析结果

有关使用 Apache JMeter 进行数据库负载测试的更多信息,请参阅 The Real Secret to Building a Database Test Plan With JMeter 文章。

【讨论】:

    【解决方案2】:

    使用pgbench 是个好主意。首先,创建一个 sql 文件并将您的测试查询放入其中。然后通过将 SQLFilePath、UserName 和 DatabaseName 替换为您的版本以这种方式运行测试台

    pgbench.exe -c 10 -f SQLFilePath -j 10 -n -t 10 -U UserName DatabaseName
    

    这里是你可以调整的命令列表

    -c = number of concurrent database clients
    -f = script file path
    -j = number of threads (the clients are evenly distributed among this number of threads)
    -n = don't run VACUUM (docs require it be set in case of custom a script)
    -t = number of transactions each client makes
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      相关资源
      最近更新 更多