Problemas de rendimiento al utilizar H2 DB en modo incrustado con una gran carga de datos en la base de datos
Estoy trabajando en una aplicación Java usando H2 Database en modo incrustado. Mi aplicación consume 150 MB de memoria de almacenamiento dinámico.
Problema: Pasos Cuando cargo la base de datos H2 con 2 mb de datos, el acceso a la base de datos es rápido y el tamaño de la memoria de almacenamiento dinámico es 160mb.
Pero cuando cargo la base de datos H2 con 30 mb de datos (tamaño de archivo h2 db = 30 mb). Entonces acceder a la base de datos desde mi aplicación es muy lento. La razón es que el tamaño del montón de mi aplicación crece enormemente a 300 MB de tamaño, por lo tanto, reduce el rendimiento. Confirmé usando JConsole.
Así que entiendo que desde que la base de datos H2 se desarrolló usando Java y como estoy usando la base de datos H2 en modo incrustado, el tamaño de almacenamiento dinámico de la base de datos H2 se agrega a mi aplicación, que está rompiendo la aplicación.
El problema es que a medida que aumenta el tamaño de la base de datos H2, el rendimiento de mi aplicación se degrada.
¿Cómo resolver el problema?
He dado la conexión como
rurl = "jdbc:h2:file:/" + getDBPath() + dbname + ";CACHE_SIZE=" + (1024 * 1024) + ";PAGE_SIZE=512";
para aumentar el caché de H2.