【问题标题】:SQL stored procedure to Matlab datatransfer - out of memorySQL 存储过程到 Matlab 数据传输 - 内存不足
【发布时间】:2011-08-26 18:02:48
【问题描述】:

我在 SQLserver 上有一个由 Matlab 执行的存储过程。该过程返回一些1.5million 行。我的操作系统是 XP x32,Matlab 版本是 2011a 32 位。每当我尝试获取此数据时,都会收到 Java 堆内存大小错误。我尝试使用 rowLimit 作为 200000 但我仍然遇到同样的错误。有趣的是,当存储过程返回

clear all                                      % free all available memory
conn = database('xxx' , 'userid', 'passwrd') ; % works fine
setdbprefs('DataReturnFormat','numeric');      % works fine
curs = exec(conn,'execute xxxxxx') ;           % works fine
fetch(curs) OR fetch(curs,200000) ;     --> java.lang.OutOfMemoryError: Java heap space

您能否建议一种导入此类数据集的方法?谢谢!

【问题讨论】:

  • 返回的结果集的列类型有哪些?
  • Matlab 中的双精度,SQL 中大多是浮点型。带有字符的列成为 NaN。
  • 您连接的是什么 DBMS(例如 Oracle/MS SQL Server/等)?

标签: sql matlab fetch data-transfer


【解决方案1】:

您可以尝试增加JVM 的堆大小。参考这篇文章怎么做 http://www.mathworks.com/support/solutions/en/data/1-18I2C/index.html

关于要设置的实际大小,请参阅此线程: Java maximum memory on Windows XP

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 2015-05-23
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多