PDA

View Full Version : [MATLAB+MySQL] Problema heap space e gestione grande tabella


nandox80
21-04-2009, 14:23
Ciao a tutti

ho necessità di accedere a un database MySQL da Matlab. Era tutto ok fino a quando non ho avuto a che fare con una tabella di 2.6, e piu, GB. Come facevo in precedenza, quindi con la creazione di un cursore (funzione exec), ho:

java.lang.OutOfMemoryError: Java heap space

che si presenta proprio al momento della creazione del cursore e quindi prima di fare il retrieve. Ho seguito qualche guida online per aumentare l'heap space ma nn ci son riuscito, non ho ben capito come creare il file java.opts e dove metterlo.
Volevo chiedere se qualcuno avesse mai avuto a che fare con il gestire una tabella, su mysql, con milioni e milioni di righe da matlab e se quindi quel problema è normale. o se c'è qualche alternativa proprio al classico metodo di connessione al database da matlab.

Spero di essere stato chiaro e che mi possiate aiutare.

Nando

nandox80
22-04-2009, 11:00
Ciao a tutti

ho necessità di accedere a un database MySQL da Matlab. Era tutto ok fino a quando non ho avuto a che fare con una tabella di 2.6, e piu, GB. Come facevo in precedenza, quindi con la creazione di un cursore (funzione exec), ho:

java.lang.OutOfMemoryError: Java heap space

che si presenta proprio al momento della creazione del cursore e quindi prima di fare il retrieve. Ho seguito qualche guida online per aumentare l'heap space ma nn ci son riuscito, non ho ben capito come creare il file java.opts e dove metterlo.
Volevo chiedere se qualcuno avesse mai avuto a che fare con il gestire una tabella, su mysql, con milioni e milioni di righe da matlab e se quindi quel problema è normale. o se c'è qualche alternativa proprio al classico metodo di connessione al database da matlab.

Spero di essere stato chiaro e che mi possiate aiutare.

Nando

dopo tantissime prove ho trovato la soluzione. La posto in modo che magari se a qualcuno è utile la trova piu facilmente di me.

Si crea il file "java.opts" (nuovo documento txt) e lo si mette nella cartella Matlabroot/bin/win32 (il caso del mio sistema...per altri sistemi su google questo si trova facilmente).
All'interno di questo file si inseriscono le due righe:

-Xmx<MaxSizeMem>m (m sta per Mega)...io ho messo -Xmx256m
-Dcom.sun.management.jmxremote

si salva il file, si riavvia Matlab e dovrebbe essere ok. A me ora funziona tutto e riesco a gestire il mio database mysql di 3GB, di cui una tabella è di 2.6 GB, perfettamente da Matlab.

Grazie lo stesso per l'aiuto...spero di esser stato utile. ciao ciao