Les problèmes de performances à l'aide de H2 DB en mode imbriqué avec la lourde charge de données dans la base de données
Je suis en train de travailler d'une application java à l'aide de la Base de données H2 en mode incorporé.
Mon Application consomme 150 mo de mémoire dans la mémoire.
Problème:
Étapes
Lorsque je charge H2 base de données avec 2 mo de données, base de données, l'accès est rapide et tas de la taille de la mémoire de 160 mo.
Mais Lorsque je charge H2 base de données avec 30 mo de données(h2 db taille du fichier =30 mo). Ensuite l'accès à la base de données à partir de mon application est très lente. la raison d'être de ma demande taille du tas est extrêmement cultivé à 300 mo de taille donc une dégradation des performances. J'ai confirmé à l'aide de JConsole.
Si ma compréhension est depuis H2 base de données est développée en java et depuis que je suis à l'aide de la base de données H2 en mode imbriqué, la taille du tas de H2 Base de données est ajouté à ma demande qui est la rupture de l'application.
Le problème est que H2 taille de base de données est cultivé, les performances de mon application est dégradée.
Comment résoudre le problème?
J'ai donné le lien que
rurl = "jdbc:h2:file:/" + getDBPath() + dbname + ";CACHE_SIZE=" + (1024 * 1024) + ";PAGE_SIZE=512";
pour augmenter le cache de H2.
Vous avez utilisé non de la taille du cache et de la taille de la page - quelles sont les raisons de ne pas utiliser les paramètres par défaut?
Avez-vous trouvé une solution pour cela? Je suis en train de vivre le même problème. Petite base de données est bien, si je insérez un grand nombre de données dans un tableau toutes les requêtes de commencer à prendre beaucoup plus de temps.
OriginalL'auteur Harish Alwala | 2012-03-21
Vous devez vous connecter pour publier un commentaire.
Dans la plupart des cas, les problèmes de performance ne sont pas réellement liées à la taille du cache ou de la taille de la page. Pour analyser les problèmes de performance, voir le H2 de la documentation, spécialement:
Si vous définissez la taille du cache manuellement à 1024 * 1024, alors H2 utiliser 1 GO de mémoire dans la mémoire. Ce paramètre ne doit être utilisé si vous avez un beaucoup plus que 1 GO de mémoire physique disponible pour la JVM (à l'aide de
java -Xmx2048m
ou similaire). Sinon, je suggère d'utiliser les paramètres par défaut (16 MB taille de la mémoire cache) à la place.En utilisant une plus petite taille de la page que le défaut pourrait entraîner une baisse des performances. Cela dépend sur le disque dur, et peut-être sur le modèle de l'accès. Cependant, il n'existe pas de liste de règles lors de l'utilisation d'un non-taille de page par défaut - la seule façon de le savoir est d'essayer différents paramètres.
OriginalL'auteur Thomas Mueller