Хранимая процедура SQL для передачи данных Matlab - недостаточно памяти - PullRequest
1 голос
/ 26 августа 2011

У меня есть хранимая процедура на SQLserver, которая выполняется Matlab.Процедура возвращает несколько 1.5million строк.Моя ОС - XP x32, а версия Matlab - 2011a, 32-разрядная.Всякий раз, когда я пытаюсь получить эти данные, я получаю ошибку Java Heap Memory Size.Я попытался использовать rowLimit в качестве 200000, но я все еще получил ту же ошибку.Интересно, что данные SQL легко переносятся, когда хранимая процедура возвращает <700000 строк.(если вы хотите знать, есть 15 столбцов). </p>

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

Можете ли вы предложить способ импорта таких наборов данных?Спасибо!

1 Ответ

1 голос
/ 26 августа 2011

Вы можете попытаться увеличить размер кучи JVM. Обратитесь к этой статье о том, как это сделать http://www.mathworks.com/support/solutions/en/data/1-18I2C/index.html

Что касается фактического размера для установки, обратитесь к этой теме: Максимальная память Java в Windows XP

...