2010-11-02 13 views
5

Est-ce que quelqu'un sait si c'est là de toute façon on peut changer le mode d'une table existante dans un HSQLDB? Par défaut, ils sont tous en mode mémoire, mais avec le temps, certains sont devenus très gros et ils mangent donc toute ma mémoire (RAM). Je veux les convertir en mode "mis en cache", mais je n'ai trouvé aucune solution. Cependant, il est très important de ne pas perdre les données existantes.HSQLDB - Modification du mode table

Merci,

Répondre

4

Dans la version 2.0 Utilisation:

SET TABLE mytable TYPE CACHED

Dans les versions antérieures: Arrêt la base de données, modifiez le fichier .script et changer « CREATE TABLE MYTABLE. .. "ou" CREATE MEMORY TABLE MYTABLE ... "à" CREATE CACHED TABLE MYTABLE "puis enregistrez. Lorsque la base de données est ouverte, cela changera le type de table. Vous devez ensuite arrêter la base de données une fois pour finaliser la modification.

+0

Merci! Comme j'ai la version 1.7.2, aucune de ces deux méthodes ne fonctionne. Je considère maintenant une mise à niveau DB. – Beethoven

0

tables mises en cache sont créés avec la commande CREATE TABLE mises en cache. Seule la partie de leurs données ou index est stockée dans la mémoire , ce qui permet de prendre en charge des tables de grande taille dont prendrait autrement plusieurs centaines de mégaoctets de mémoire(). Un autre avantage des tables mises en cache est que le moteur de base de données met moins de temps à démarrer lorsqu'une table mise en cache est utilisée pour de grandes quantités de données. L'inconvénient des tables mises en cache est une réduction de vitesse . N'utilisez pas les tables mises en cache si votre ensemble de données est relativement petit ( ). Dans une application avec quelques petites tables et quelques grandes tables, est préférable d'utiliser le mode par défaut, MEMORY pour les petites tables.

http://hsqldb.org/doc/guide/guide.html

+0

Je le sais. Je demandais comment on pourrait changer ce mode sans avoir à retirer la table existante et en créer une nouvelle. Je veux dire, une sorte de "alter table" et changer le mode. – Beethoven