有没有办法测量 SQL 查询执行所需的时间而不用 Java 获取结果?
Posted
技术标签:
【中文标题】有没有办法测量 SQL 查询执行所需的时间而不用 Java 获取结果?【英文标题】:Is there a way to measure time taken for SQL query to execute without fetching the results in Java? 【发布时间】:2019-09-18 11:16:33 【问题描述】:所以我正在编写一个数据库性能测试工具,它必须测量执行某些查询所需的时间,但它适用于大数据,这些查询每个都会生成数百万行,因此会在我的机器和服务器之间产生巨大的网络流量数据库主机。我的问题是如何从我知道查询何时完成执行但不获取结果集的 java 应用程序运行查询?
以下代码段是否排除了通过网络传输的所有行?
//start recording time
Bool someName = statement.execute(sqlStatement);
//stop recording time
【问题讨论】:
如果可以修改它们,您可以只执行 SELECT COUNT(*) 而不是在查询中返回行? 我建议用你的 SQL 查询创建一个存储过程而不返回行,所以你只需要在你的 java 代码中执行 SP。 很遗憾我无法修改已经存在的查询 我的措辞不好,我当然是想复制并修改副本,除非您需要完全按原样测量它们。 在 Postgres 中,您可以使用explain (analyze)
- 您使用的是哪个 DBMS 产品?但最后你应该测试这个,包括网络流量,因为你通常不会在生产环境中运行不检索结果的语句。
【参考方案1】:
您可以运行CREATE TABLE (SELECT query)
命令并测量时间。之后放下桌子。
mysqlreference
【讨论】:
以上是关于有没有办法测量 SQL 查询执行所需的时间而不用 Java 获取结果?的主要内容,如果未能解决你的问题,请参考以下文章
如何计算呈现 Django 管理页面所需的 SQL 查询数?