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

SQL Oracle Discussion :

Calculer le pas de commit;


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut Calculer le pas de commit;
    Bonjour les braves :-)

    Je suis en Oracle 10GR2 et désire savoir comment calculer le pas de commit pour faire des maj en batch sur une Table de plus 50.000.000 records ?
    Cela dépend-t-il du RBS ?
    Y'a-t-il une règle pour calculer ce fameux pas :-)

    Merci de vos réponses.

    LBO72.

  2. #2
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Bonjour,

    Qu'entends -tu par pas de commit ??

    Est tu dans du SQL ou PL/SQL ?

    Que veux tu faire exactement , un update ... ?

    Si c'est un update , combien de lignes tu updates sur la totalité de la table ?

  3. #3
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Bonjour et merci pour la réponse,

    Version : Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

    Dans un bloc PlSql, je fais des inserts dans une table. A quelle fréquence dois-je faire le commit ? tous les 10.000 records ? tous 15.000 records ? comment calculer ce pas de commit;

    Cdlt,
    LBO72

  4. #4
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    ah ,
    C'est des insert !

    tu peux ne pas faire de commit dans ta boucle pour ne pas avoir le fameux ORA-01555 Snapshot too old

    autrement dit il n'y a pas de calcul savant pour le "pas de commit " !

    Il faut surtout mettre le commit a l'exterieur de la boucle .

    Peux tu faire un insert append ou CTAS (Create table as select )?

    C'est le plus rapide

    Sinon activer le "nologging", et "disable index"
    -insert
    -enable index
    -activation logging

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut
    et pourquoi pas des inserts en mode BULK pour réduire le nombre de changement de contexte ? J'ai déjà testé c'est très performant

  6. #6
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Merci à vous deux pour vos réponses

    Fatsara, tu me mis que je ne peux pas mettre de commit dans ma boucle, chose que j'ai testée, et apparemment ça marche. je me permets de te tutoyer. on en en famille dans ce site :-)

    DEV1)>
    declare
    i number(2);
    begin
    i := 10;
    for cur in (select * from dba_tables where rownum < 10) loop
    insert into toto values(i);
    i := i - 1;
    commit;
    end loop;
    end;

    PL/SQL procedure successfully completed.

    DEV1)>select * from toto;

    NN
    ----------
    10
    9
    8
    7
    6
    5
    4
    3
    2
    Cdlt,
    LBO72

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

Discussions similaires

  1. Afficher un résultat de calcul mais pas dans un INPUT.
    Par Beugleur dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/04/2015, 13h39
  2. Calcul : ne pas compter les cellulles vides
    Par romuald.lecordier dans le forum QlikView
    Réponses: 1
    Dernier message: 05/09/2014, 08h49
  3. SUM calcule mal pas avec un COUNT
    Par tibofo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2008, 13h10
  4. Insérer un calcul ou pas ?
    Par TallyHo dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 01/12/2007, 13h28
  5. champ calculé résultat pas correct
    Par mulanzia2003 dans le forum Requêtes et SQL.
    Réponses: 24
    Dernier message: 16/08/2007, 14h13

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