Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Débuter
Débuter Forum d'entraide pour débuter avec Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/08/2004, 11h29   #1
Futur Membre du Club
 
Inscription : février 2004
Messages : 43
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 43
Points : 19
Points : 19
Par défaut [firebird 1.5] Probleme sur tables de grande taille

Bonjour,

je developpe un appli java avec une base de données firebird 1.5.

J'ai une table de 300 000 lignes.

J'utilise IBExpert.

Lorsque j'effectue un tri sur cette table,
ca me consomme 150Mo de Ram.

Et le pire, c'est que la RAM n'est pas libérée à la fin!

Quelqu'un a t il deja rencontre ce probleme?
iguanevif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2004, 12h15   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
C'est que le tri que vous demandez n'est pas fait sur un index oubien c'est que vous faites un fetch de tous les enregistrements.

La mémoire consommée c'est parqu'il est bien plus rapide de mettre en cache les données plutot que de les lire toujours sur le disque dur.
"Le pire" ca dépend pour qui. S'il liberait la mémoire après vous allez vous plaindre que le SGBD est trop lent.
C'est la même histoire que "Pourquoi quand je delete des enregistrements la taille de ma base ne diminue pas ???" -> C'est pour priviliger la rapidité. Réorganiser un gros fichier juste pour boucher un "trou" ca coute trop cher en resource...

Si vous lancez une deuxième foit le même tri sur vos 300000 enregistrement il sera quasiment instantanné alors que la première fois il a pris beaucoup de temps(s'il n'y avait pas d'index).

Un SGBD est en général optimisé pour accélérer l'accés aux données. Hélas il n'y a pas 36 solutions pour le faire et on ne peux tout avoir (vitesse et consomation des resources minimale).

Et donc en général on adapte le serveur aux besoins en mémoire de la base pour optenir de bonnes performances.

Vos 150 Mo ne sont pas perdus, celà correspond à la mise en cache de votre table, cette mise en cache va profiter à tous les autres accés à cette table et donc celà va réduire considérablement les temps d'accés.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2004, 13h33   #3
Futur Membre du Club
 
Inscription : février 2004
Messages : 43
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 43
Points : 19
Points : 19
merci barbibulle,
je comprends bien mieux maintenant.

tes explications sont toujours un régal de claireté!
iguanevif est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h01.


 
 
 
 
Partenaires

Hébergement Web