【问题标题】:Creating server side cursors创建服务器端游标
【发布时间】:2010-10-29 19:09:49
【问题描述】:

com.microsoft.sqlserver.jdbc.SQLServerException:系统内存不足。对大型结果集使用服务器端游标:Java 堆空间。结果集大小:280,236,031。 JVM 总内存大小:423,297,024。

我正在尝试从 SQL 获取大数据集,但出现以下错误。让我知道是否有人看到类似的东西并愿意放弃。

【问题讨论】:

  • 功能需求是什么?可能有比将整个数据库复制到 Java 内存中更好的解决方案。例如,您可以在每行/页的基础上工作,也可以利用 DB 提供的导出工具。
  • 我正在使用 R 进行分析。这是一项统计分析,我需要一次性获取所有这些数据。

标签: java sql-server jdbc


【解决方案1】:

您是否尝试过增加 JVM 的可用内存量?在命令行中,添加 -Xmx1024m 以将 JVM 内存占用增加到 1Gig。这不是一个长期的解决方案,但它会解决您眼前的问题。

【讨论】:

  • 我没有直接使用 Java。因此,除非我在 JVM 本身执行此操作,否则无法指定这一点,我认为我无法访问。
  • 如果获取数据的内存不足,而您无法改变这一点,唯一的出路就是一次性减少使用的内存量。脑海中浮现出许多可能性,但取决于您想做什么以及使用什么软件。
  • 我尝试增加可用内存。但它仍然给我同样的错误。有人知道为什么吗?
  • 当您增加可用内存时,错误消息是否发生变化以反映可用内存量的增加?即错误中 JVM 总内存的值是否增加了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多