I have noticed that Ucanaccess try to load entire database in memory first, then only it do anything else. This is not a good design. F.e i have a 1GB database file and its not loading in my max allowed 1.3GB heap memory. So now i have no options to connect it. Is there any option i could use the db without fully loading in the memory?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You may also want to connect with a filter database that links the real database within the subset of external linked tables which are strictly needed for your application (the memory usage might be dropped down). You must check by yourself the referential integrity with the excluded tables.
How did your good design bring you to a 1G-sized access database (i.e. a personal desktop DB)? To improve the way to deal with large db, you have just to write an entire dbms from scratch instead of using UCanAccess.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have noticed that Ucanaccess try to load entire database in memory first, then only it do anything else. This is not a good design. F.e i have a 1GB database file and its not loading in my max allowed 1.3GB heap memory. So now i have no options to connect it. Is there any option i could use the db without fully loading in the memory?
If you append
;memory=falseto your connection URL then UCanAccess will store the HSQLDB backing database tables on disk instead of in memory.You may also want to connect with a filter database that links the real database within the subset of external linked tables which are strictly needed for your application (the memory usage might be dropped down). You must check by yourself the referential integrity with the excluded tables.
How did your good design bring you to a 1G-sized access database (i.e. a personal desktop DB)? To improve the way to deal with large db, you have just to write an entire dbms from scratch instead of using UCanAccess.