IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Firebird Discussion :

Utilisation de "sweep interval" ; limitation du gonflement de la base


Sujet :

Administration Firebird

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 80
    Points : 197
    Points
    197
    Par défaut Utilisation de "sweep interval" ; limitation du gonflement de la base
    Bonjour,

    J'ai comme qui dirait un problème de "surpoids" récurent avec les bases de données de mes clients.

    J'ai vu sur certaines discussions que le backup/restore permettait de faire dégonfler certaines bases "mal gérées" (bon, à priori, c'est mon cas vu que je passe sur certaines bases de 500Mo à moins de 50Mo...) mais autant j'ai un backup automatisé (par GBakScheduler), autant le restore automatisé, là, je ne vois pas...

    Je pensais passer par une modification du "sweep interval", mais là, le pb, c'est que je ne sais pas bien dans quelle mesure faire varier sa valeur... (et j'ai un peu peur de faire des conneries en y allant à l'aveuglette...)

    Est-ce que quelqu'un pourrait me guider/renseigner ?

    (j'ai oublié de préciser : je suis en Firebird 1.5.4 et en Delphi 5, avec impossibilité technique de changer de techno -je suis tout seul sur une appli déjà grosse à maintenir, et donc sans possibilité de tout basculer ne serait-ce qu'en Delphi 6-)
    "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live." (Code for the Maintainer)
    I usually maintain my own code, so the as-if is true!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    je pense que tu devrai revoir un peu tes transactions car moi j'utilise Delphi 6 et firebird 1.5 ou 2.0 et ça augmente un peu mais faiblement (ça peut prendre quelques mega au bout d'une année d'utilisation...)

    pour le sweep, j'ai laissé la valeur par défaut (20000 je crois). C'est je crois le nombre de transactions entre chaque sweep

    tu utilises quel paramètre pour tes transactions ?

    elle gonfle de 50 Mo à 500 Mo rapidement ?

    y a beaucoup de personnes connectés ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    avec Firebird 2 je suis en train de tester la solution suivante

    1) j'ai mis l'intervalle de Sweep à 0
    gfix -user SYSDBA -password masterkey c:\labase.fdb -h 0

    2) je fais régulièrement (tache plannifiée) un sweep pendant les heures hors bureau (1h du mat, 13h00)

    gfix -user SYSDBA -password masterkey c:\labase.fdb -sweep

    opérations indiquées sur le site de Firebird je crois

    pourquoi : parce que l'opération auto de nettoyage occupe tout le processeur lorsqu'elle se déclenche (bug connu de FIB 2)
    nota : j'ai des vieux programmes D3 qui accède a cette base anciennement 5.6

    dans un précédent post http://www.developpez.net/forums/sho...d.php?t=399242Makowsky me proposait une autre solution que je n'ai pas encore testé . Laquelle est la meilleure ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 80
    Points : 197
    Points
    197
    Par défaut
    (Désolé pour le retard...)

    Citation Envoyé par VLDG
    ...je pense que tu devrai revoir un peu tes transactions ...
    Oui, effectivement... d'autant plus qu'il y a quelques mois, je n'avais pas le problème : les bases prenaient quelques mégas par mois, mais moins d'une dixaine le plus souvent... C'est du à un bout de code pondu par quelqu'un qui est parti, et c'est du code que je ne maîtrise pas trop, avec des CommitRetaining et des RollbackRetaining... J'ai essayé en enlevant les "retaining", mais du coup, j'ai d'autres transactions qui ne suivent plus......

    En gros, d'ici à trouver une solution "convenable", il faut que je trouve une solution temporaire pour mes clients installés...

    Citation Envoyé par VLDG
    elle gonfle de 50 Mo à 500 Mo rapidement ?
    y a beaucoup de personnes connectés ?
    Moi, en tests, je fait gonfler une base en une journée (de 50 Mo à 300 Mo voire plus...). Bon, fait dire que je fais des imports, je supprime tout, je réimporte,... pendant toute une journée, ça représente des milliers d'enregistrements insérés, et autant de delete forcément...
    En utilisation normale, c'est souvent moins de 10 utilisateurs, avec au final le même volume d'insert et de delete (et donc le même gonflement), mais sur une semaine...

    Citation Envoyé par SergioMaster
    dans un précédent post Makowsky me proposait une autre solution
    J'avais effectivement vu ce post, mais la migration IB->FIB ayant été réalisée bien avant mon arrivé sur ce poste, la solution ne me paraissait pas adaptée... Par contre, je suis bien placé pour comprendre ta remarque :
    beaucoup de programmes anciens doivent encore 'tourner'


    Citation Envoyé par SergioMaster
    je fais régulièrement (tache plannifiée) un sweep pendant les heures hors bureau
    Je crois que je vais essayer de ce côté... Je ne suis pas passé en FIB 2, donc à priori, je devrais même pouvoir essayer un mixte, genre : seep interval entre 1000 et 5000 transactions + sweep en tache planifiée pendant les heures de nuits et/ou du midi...

    (désolé encore : le post est très long)
    "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live." (Code for the Maintainer)
    I usually maintain my own code, so the as-if is true!

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 80
    Points : 197
    Points
    197
    Par défaut
    Bon, je viens de faire des tests avec des Sweep Interval différents, sur deux copies d'une même base (30 Mo), et après une même série d'imports dans les deux cas, les mêmes appli ouvertes en visu sur la base pendant l'import, quasiment les même manips,... :
    - Sweep Interval à 20000 : gonflement de 700 % ( faut vraiment que je trouve cette @!#!$£ de transaction déconnante !!!)
    - Sweep Interval à 1000 : gonflement de 450 %
    - Sweep Interval à 100 : gonflement de 400 % (avec un tassement considérable du gonflement en cas d'imports supplémentaires)

    Je crois que je tiens ma solution temporaire... ... en attendant de trouver un moyen de corriger ce code !

    Merci à tous !
    "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live." (Code for the Maintainer)
    I usually maintain my own code, so the as-if is true!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo