Précédent   Forum des professionnels en informatique > Bases de données > Firebird
Firebird Forum d'entraide sur le SGBD Firebird. Avant de poster -> F.A.Q Firebird, Tutoriels
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 03/08/2007, 10h27   #1
Invité régulier
 
Inscription : août 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 17
Points : 5
Points : 5
Par défaut Compactage à chaud ?

Bonjour,

Est-il possible de compacter une base "à chaud" ?
Ou y a-t-il un moyen de regénérer les index sans arrêter la BDD ?

Merci
sehshe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 11h18   #2
Invité régulier
 
Inscription : août 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 17
Points : 5
Points : 5
Par défaut Je complète ma question

Le but est de faire baisser la taille de la base de données ou alors, trouver un moyen de ne pas la faire grossir en recalculant par-exemple la sélectivité des index de manière régulière ?

Pour info, Il y a des insertions et suppressions en masse et de manière continue dans cette base.

Merci
sehshe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 11h25   #3
Membre régulier
 
Inscription : février 2005
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 100
Points : 88
Points : 88
1. tu peux compacter une base à chaud avec l'utilitaire gbak. Voici un bon lien qui explique l'utilité de cet exécutable
Explications sur gbak en anglais

Explications sur le site IBPhoenix en français

2. Oui il y a moyen mais assure toi de n'avoir qu'une seule connexion et transaction sur la base de données car cela risque de poser problème au niveau des contraintes référentielles lors que tu rerecréera les index.

Néanmoins pour recalculer les index je te conseille de créer la procédure stockée suivante qui est déjà présente dans un des messages de ce forum
Code :
1
2
3
4
5
6
7
8
9
10
11
 
CREATE PROCEDURE RECALCULINDEX
AS
DECLARE VARIABLE MONINDEX VARCHAR(500);
BEGIN 
  FOR SELECT RDB$INDEX_NAME FROM RDB$INDICES INTO :MONINDEX DO 
  BEGIN 
 
    EXECUTE STATEMENT ('SET statistics INDEX ' || :MONINDEX || ';'); 
  END
END
puis de la lancer
Code :
1
2
 
EXECUTE PROCEDURE RECALCULINDEX;
Cela recalculera la sélectivité de tous tes index.
sillycoder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 11h30   #4
Invité régulier
 
Inscription : août 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 17
Points : 5
Points : 5
Par défaut restore ?

Merci.

Mais le restore peut-il ausi être fait à chaud sur la même base ?

Style :
Restore to an already existing database (Firebird 2.0)
gbak -r o -v -user SYSDBA -password masterkey c:\backups\warehouse.fbk dbserver:/db/warehouse.fdb

Pour la regénération d'index :
Oui merci j'avais trouvé le code sur le forum, mais je ne savais pas si cela allait jouer sur le volume de la base.
sehshe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 14h01   #5
Invité régulier
 
Inscription : août 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 17
Points : 5
Points : 5
Par défaut Encore une question

Pour une grosse application en client/serveur qui tourne en permanence, comment peut-on se dépétrer du problème de grossissement de base à ce moment là ?
Je ne peux jamais garantir qu'il n'y ait qu'une seule connexion ou transaction...

Je ne dois pas être la seule dans ce cas...
sehshe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h06   #6
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
il n'y pas de probleme de grossissement si les transactions sont correctes et si tu fais un backup (sans restore) avec gbak régulièrement.
Le serveur réutilisera la place disponible, les nouveaux insert utiliseront la place disponible après les suppressions
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 20h49   #7
Membre Expert
 
Avatar de edam
 
Inscription : décembre 2003
Messages : 1 716
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 716
Points : 1 783
Points : 1 783
salut , j'ai un petit question stu...
normalement si en fait un restore les données modifier après le backup seront perdus, non?
__________________
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
edam 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 17h22.


 
 
 
 
Partenaires

Hébergement Web