java - SQL Developer 在 MySQL 数据库上因 GC 开销限制超过错误而卡住

标签 java mysql garbage-collection oracle-sqldeveloper

我正在尝试将 Oracle SQL Developer 与 MySQL 数据库结合使用。我可以很好地连接并且可以执行查询,我可以看到表格,并且选择了一个表格后我可以很好地单击除“数据”选项卡之外的所有选项卡。当我单击“数据”选项卡时,我收到一条消息“等待编辑器初始化”并且 SQL Developer 卡住。几分钟后,我收到带有以下堆栈的消息“超出 GC 开销限制”

java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2114)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1921)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3278)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:462)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2997)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2245)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2638)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel.openResultSet(ResultSetTableModel.java:490)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel.fetchNext(ResultSetTableModel.java:274)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel$4.doWork(ResultSetTableModel.java:686)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel$4.doWork(ResultSetTableModel.java:670)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:554)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

我环顾了 stackoverflow 和谷歌,但找不到任何适合我的东西。我在 Windows 7 64 位、SQL Developer 版本 4.0.3.16、MySQL 服务器版本 5.5 上运行它。我加了一行

AddVMOption -Xmx1024M

在 sqldeveloper\sqldeveloper\bin\sqldeveloper.conf 文件中,如这里所建议的那样

https://codechief.wordpress.com/2008/07/30/configuring-oracle-sql-developer-for-large-files-fix-out-of-memory-errors/

并且还添加了更改的初始和最大内存分配池大小 C:\Users\\AppData\Roaming\sqldeveloper\1.0.0.0.0\product.conf文件到

AddVMOption -Xms512m

AddVMOption -Xmx1024m

分别。我正在监控性能,我没有用完内存,但 CPU 利用率超过 90%。

谢谢!

最佳答案

您需要编辑 sqldeveloper\sqldeveloper\bin\sqldeveloper.conf 文件,添加以下行:-

AddVMOption -Xmx1024M

关于java - SQL Developer 在 MySQL 数据库上因 GC 开销限制超过错误而卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27300949/

相关文章:

java - 删除 Derby DB 中的所有表

java - 适用于 Android 和 Java 的 Retrofit REST 客户端不会终止

java - 禁用 AdaptiveSizePolicy 时的并行垃圾收集器问题

ruby - JRuby 垃圾收集在 Rails 中运行单元和功能测试时抛出错误

javascript - 从数组中提取子数组的内存最安全方法

java - 书店的类图

mysql - 来自 2 个表的数据

MySQL 查询 - 按日期和 ID 过滤

mysql - 分组和排序依据

java - 关于改进这个简单的 Java 对象池类的建议?