我有 10 个包含不同 OLAP 查询的 sql 文件。
我想批量运行它们。批处理的意思是,Postgres 会将每个文件视为一个批处理并立即执行查询(取决于其自己的管理过程)
下面的命令,一个一个地执行每一个查询
psql -h localhost -d databasename -U user -p port -a -q -f input.sql -o output.txt
那可能吗 ?以及如何计算执行该批处理 sql 查询所需的时间?
我有 10 个包含不同 OLAP 查询的 sql 文件。
我想批量运行它们。批处理的意思是,Postgres 会将每个文件视为一个批处理并立即执行查询(取决于其自己的管理过程)
下面的命令,一个一个地执行每一个查询
psql -h localhost -d databasename -U user -p port -a -q -f input.sql -o output.txt
那可能吗 ?以及如何计算执行该批处理 sql 查询所需的时间?
您可以使用 ie GNU Parallel,它提供了同时运行任意命令/程序的可能性,语法类似于:
此命令将同时执行位于
input1.sql
和input2.sql
的 2 个查询。另一种选择是使用专用的负载测试工具,例如Apache JMeter,如果将Postgres JDBC Driver添加到JMeter Classpath,您将能够在JDBC Connection Configuration和JDBC Request Samplers中的查询下提供连接详细信息。如果需要,请查看使用 JMeter 构建数据库测试计划的真正秘密文章以获取更多详细信息。
然后您可以增加线程组中的线程数, JMeter 将根据您的工作负载模型执行查询。您将能够使用Listeners或通过HTML Reporting Dashboard观察性能指标。这样,您将获得更全面的结果,并能够将增加的并发线程数量与增加的查询执行时间相关联,识别饱和点、瓶颈等。