像 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();
我没有在 ResultSet
或 ResultSetMetaData
类中找到任何此类性能度量功能。没有比使用系统时钟“手动”测量耗时更好的方法了,例如在 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/