java - 如何获取 JDBC 查询的执行/获取时间?

标签 java database performance jdbc time

DbVisualizer 这样的工具通常在执行数据库查询后显示 exec/fetch 时间。通过 JDBC 执行查询后是否可以访问此类性能指标?

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();

// missing functionality:
float executionTime = rsmd.getExecTime();
float fetchTime = rsmd.getFetchTime();

我没有在 ResultSetResultSetMetaData 类中找到任何此类性能度量功能。没有比使用系统时钟“手动”测量耗时更好的方法了,例如在 How do I calculate the elapsed time of an event in java? 中讨论的那样

最佳答案

你必须衡量时间。通常您会使用 System.currentTimeMillis()毫秒为单位计时,或者使用 System.nanoTime() 以获得更高的分辨率/准确性。

在很少使用的情况下自动计时会很浪费。

关于java - 如何获取 JDBC 查询的执行/获取时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215564/

相关文章:

java - 检查有多少根是真实的

mysql - 将 3 个查询链接到一个查询以将数据导出到 csv

mysql - rails 将 geoip 资源保存在同一个数据库或分离的数据库中哪个更好?

python - 有没有办法有效地比较 python 中的两个字典列表?

r - 如何做一个 BETWEEN 合并 data.table 的方式?

java - Java 8 中删除了 JDBC-ODBC 桥,最好的替代方案是什么?

java - 如何使用Java在Oracle DB中插入汉字

java - 实例化类型 <?> 的泛型类

数据库设计 : best approach

java - Java 世界中的一毫秒有多长?