【问题标题】:Use JDBC to check the memory(RAM) used in queries使用 JDBC 检查查询中使用的内存(RAM)
【发布时间】:2019-05-16 19:28:06
【问题描述】:

我需要检查执行查询时使用的内存。我已经在 MYSQL 中将 JDBC 连接到我的数据库。而且我也知道如何执行查询。但我不知道如何检查执行查询时使用的内存。这是为了比较内存和时间。我正在使用 NetBeans。

谢谢

【问题讨论】:

    标签: java mysql jdbc


    【解决方案1】:

    您可以使用com.sun.management.ThreadMXBean.getThreadAllocatedBytes(long id) 获取大约。线程使用的字节数。 https://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/ThreadMXBean.html#getThreadAllocatedBytes(long)

    当您的 JDBC 连接、语句和结果集内容由线程执行时,您可以获得大约。通过提供线程 id 由线程使用的内存量。

    参考-Will ThreadMXBean#getThreadAllocatedBytes return size of allocated memory or objects?

    【讨论】:

      【解决方案2】:

      如果您指的是数据库服务器中的内存使用情况(通过 JDBC),则不能。询问 DBA。

      如果是为您的应用程序或您的应用程序服务器,那么您可以使用Runtime.getRuntime().freeMemory() 来获取数据库/JDBC 调用前后的内存使用情况。

      更好的是,您可以使用 JMX 远程完成。 JConsole 最基本的用法可以帮助您。

      【讨论】:

      • 谢谢,我需要的是运行时。但是 freeMemory() 返回可用内存量,我需要查询期间的内存使用量。你知道我需要什么吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 2011-09-17
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多