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

Connexion aux bases de données Firebird Discussion :

Limite du nombre d'enregistrements pour commiter


Sujet :

Connexion aux bases de données Firebird

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Points : 144
    Points
    144
    Par défaut Limite du nombre d'enregistrements pour commiter
    Bonjour,

    Lorsque j'insere des données dans ma base je ne commite qu'à la fin de l'insertion de toutes les données pour optimiser mon temps.

    Il se peut que j'ai plus d'1 million d'enregistrements à inserer ce qui fait que ma transaction peut rester ouverte en ecriture plus de 12h.
    Il n'y a qu'une application (serveur) qui vient écrire dans la base donc laisser une transaction en ecriture ouverte ne me pose pas de probleme car tous les clients ne font que du read only commited et perdre toutes les données ne me pose pas de probleme non plus car si le commit ne se fait pas c'est que théoriquement il y a eu une erreur lors de l'insertion.

    Par contre je me demande si au niveau de FB (j'utilise 2.1) cette facon de faire etait optimale? (saturation de je ne sais quoi causé par l'énorme quantité d'enregistrements non commités)

    Merci

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Il n'y a pas de limite théorique pour ce genre de chose.

    Au plus une limite pratique relative à la place occupée par la mémorisation des éléments nécessaires au rollback éventuel.

    Naturellement, plus les commits sont espacés, et plus les insertions deviennent lentes.

    Il n'y a pas de recette miracle pour déterminer le "pas de commit". Parfois un pas réglé à 5000 ira bien, alors qu'un pas de 100000 marchera mieux dans une autre situation/configuration.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Points : 144
    Points
    144
    Par défaut
    Bonjour,

    Naturellement, plus les commits sont espacés, et plus les insertions deviennent lentes.
    Ca c'est etrange car justement j'ai remarqué que moins de fois je commitais et plus rapide etait mes insertions de données.
    en fait je fais:

    sql:='...'
    Startransaction
    Prepare
    while...
    debut
    ParamByName('..'):='....'
    ExecuteSql
    fin
    Commit

    si je fais un commit dans la boucle while je mets 2 fois plus de temps (ceci testé sur 20000 enregistrements)

  4. #4
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    Citation Envoyé par qi130 Voir le message
    Naturellement, plus les commits sont espacés, et plus les insertions deviennent lentes.
    pardon ?
    c'est quoi cette légende ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  5. #5
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Citation Envoyé par makowski Voir le message
    pardon ?
    c'est quoi cette légende ?
    C'est la légende de la journalisation.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/02/2013, 16h34
  2. Compter le nombre d'enregistrements pour limiter une boucle
    Par guivrator dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 12/05/2009, 13h56
  3. Réponses: 4
    Dernier message: 10/04/2009, 11h10
  4. Limiter le nombre d'enregistrement
    Par BXDSPORT dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/04/2004, 16h26
  5. [débutant] Limitation du nombre d'enregistrement renvoyé
    Par tmcgrady dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/11/2003, 09h41

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