[Résolu] Gestion de gros volumes de données sous HSQLDB

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Macakou
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 16 août 2007 16:53

[Résolu] Gestion de gros volumes de données sous HSQLDB

Message par Macakou »

Bonjour,

Ce fil dérive de la discussion : "Protocole d'apprentissage à suivre" : http://user.services.openoffice.org/fr/ ... =8&t=12223

Dude avait écrit :
Dans la doc HSQL, il est marqué que la limite des tables est à 8 Go. En revanche comme tout se charge en mémoire, une appli avec un tel volume risque donc d'être très lente à lire.
J'ai recherché et ai trouvé cela (je vous présente mes excuses si ce que je cite est dans la langue de Shakespeare :
Does HSQLDB store all data in memory. Doesn't memory run out as a result?

Only if you want to. By default, CREATE TABLE results in a memory table, as this is the best type for smaller tables. For larger tables, use CREATE CACHED TABLE and adjust the hsqldb.cache_scale to suite your memory use requirements (as little as 8MB or so). See the Deployment Issues section of the Guide. There is no simple rule and no imposition on the part of HSQLDB as maximum flexibility is allowed using only a couple of settings. A popular use of HSQLDB is for OLAP, ETL, and data mining applications where huge Java memory allocations are used to hold millions of rows of data in memory.
Il est fait référence au fait de recourir au réglage du cache pour créer et gérer de grosses tables.
Cependant dans la réalité, que pouvez-vous rapporter de votre expérience dans la gestion d'une très grosse base sous HSQLDB.
Combien d'enregistrements ?
Je comprends bien que l'insertion d'images ou de champs MEMO (LONGVARCHAR) peut augmenter considérablement la taille d'une base sans qu'elle ne comprenne pour autant des milliers d'enregistrements mais j'aurais besoin du retour de votre expérience pour savoir si je peux continuer mon développement sous Ooo.

Merci d'avance.
Openoffice 3.3.0.
LibreOffice 3.4.3
Windows 7, Thunderbird, Firefox 7.0.1.
Mysql Workbench 5, Wamp, PhpMyAdmin
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Re: Votre expérience (gestion de grosses bases sous HSQLDB)

Message par bm92 »

Bonjour,
Les citations proviennent du site HSQLDB, et ne concernent que le moteur de base de données fonctionnant comme application indépendante.

Quand dans un document Base on utilise la base intégrée HSQLDB, il s'agit d'une version spécialement adaptée afin d'être stockée dans le fichier Base (extension odb).
Le fichier Base, comme les fichiers Writer, Calc etc, est une archive ZIP dont le sous-fichier database/base mémorise la base de données, sous forme compressée. On ne peut donc pas accèder facilement et directement à un enregistrement de ce sous-fichier. Aussi il est fort probable que l'intégralité de la base est lue puis gardée en mémoire. La sauvegarde effective d'une modification, aussi minime soit-elle, nécessite la ré-écriture du zip.

Les utilisateurs de la base intégrée ont signalé:
- une augmentation importante de la taille du fichier après des ajouts/modif/suppressions. Solution : executer de temps en temps une commande SQL SHUTDOWN COMPACT
- la perte des modifications d'une session de travail, suite à un plantage. Probablement lié à des modifications pas encore reportées sur le fichier odb, peut-être à cause de macros mal conçues. Risques aussi de perte complète de la base de données. Voir Issue 55496.
- l'accès en écriture peut rester verrouillé suite à un mauvais traitement logiciel (fichier .odb.lck sous MS-Windows). Solution : arrêter complètement OpenOffice.

Par ailleurs la base embarquée comporte des limitations que n'ont pas d'autres bases externes:
- mono-utilisateur (Issue 42614)
- impossibilité de protéger par mot de passe l'accès à certaines données (Issue 55894).

En clair, pour une application importante j'utiliserais plutôt un moteur de base de données externe de qualité reconnue.
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
Macakou
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 16 août 2007 16:53

Re: Votre expérience (gestion de grosses bases sous HSQLDB)

Message par Macakou »

Merci de votre réponse, Monsieur.
Par ailleurs la base embarquée comporte des limitations que n'ont pas d'autres bases externes:
- mono-utilisateur (Issue 42614)
- impossibilité de protéger par mot de passe l'accès à certaines données (Issue 55894).
En clair, pour une application importante j'utiliserais plutôt un moteur de base de données externe de qualité reconnue.
Pardonnez la candeur de ma question mais Ooo semble tourner uniquement sur moteur HSQLDB, le choix d'un autre moteur reste-t-il alors possible ?

Si ce n'est pas le cas, je comprends implicitement, par les explications qui me sont données, que je vais devoir envisager, la mort dans l'âme, d'abandonner le développement de mon application sous Ooo.
Les problèmes rapportés, motiveraient-ils un changement, à plus ou moins long terme, du moteur utilisé actuellement ou pensez-vous que ce n'est pas à l'ordre du jour en ce qui concerne les prochaines versions ?
Quoi qu'il en soit, pour l'instant, je continue à développer sous OooBase.
Openoffice 3.3.0.
LibreOffice 3.4.3
Windows 7, Thunderbird, Firefox 7.0.1.
Mysql Workbench 5, Wamp, PhpMyAdmin
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12851
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: Votre expérience (gestion de grosses bases sous HSQLDB)

Message par Bidouille »

Bonsoir,
Macakou a écrit :Pardonnez la candeur de ma question mais Ooo semble tourner uniquement sur moteur HSQLDB, le choix d'un autre moteur reste-t-il alors possible ?
Base peut parfaitement fonctionner avec d'autres SGBD : http://user.services.openoffice.org/fr/ ... 202#p56202

Lisez également l'aide F1 à la rubrique "Sources de données;OpenOffice.org Base".