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

Développement SQL Server Discussion :

Insert et Commit


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Insert et Commit
    Bonjour a la communauté

    J'ai soucis ! Je veux faire un insert d'environ 3 millions de lignes. Le traitement ayant mis ko les accés a la bdd j'ai voulu le stopper mais la j'ai eu le retour de flame .... enfin le roll back quoi Mais meme le rollbak etait long donc on m'as parler de faire des commit regulierement !

    Donc j'ai vu que le rowcount pouvait servir mais c'est ni plus ni moins qu un tp donc je vois pas trop comment m'en servir.
    Et rajouter un critere, me rendrais la requete beaucoup moins efficaces.

    Ma requete est du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO Ma_table
    (	
    	champ1,champ2,champ3
     
    )
    SELECT champs1,champ2,champ3
    FROM ma_source
    Et comme je veux faire un basculement de masse je ne me sers pas du tout d'un quelconque ID.

    J'espere avoir ete clair (c'est pas gagné le plus souvent ).

    Merci d'avoir pris de le temps de me lire

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    La remarque de vos collègue est probante dans le cas d'une importation en bloc par la commande BULK INSERT. C'est la meilleure option si vous importez des données d'un fichier plat.

    Vous pouvez traiter votre INSERT par lot de 10000 lignes par exemple, mais ce n'est pas franchement très propre.

    Combien d'indexes comporte votre table destination ? en effet la maintenance de ceux-ci pour pénaliser le traitement ... Vous pouvez penser à les désactiver par exemple, le temps de l'insertion ...

    Votre requête SELECT seule s'effectue-t-elle dans un temps raisonnable ? Avez-vous regardé son plan ?

    @++

Discussions similaires

  1. Fonction EXECUTE 'INSERT.. not commit
    Par spiale dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 05/09/2013, 20h09
  2. insert sans commit?
    Par eatherquake dans le forum JDBC
    Réponses: 6
    Dernier message: 03/12/2008, 11h54
  3. INSERT SELECT en dynamique et COMMIT
    Par macben dans le forum Forms
    Réponses: 16
    Dernier message: 15/06/2007, 10h19
  4. Trigger après le commit du insert
    Par macben dans le forum PL/SQL
    Réponses: 3
    Dernier message: 22/05/2007, 11h36
  5. Réponses: 4
    Dernier message: 08/01/2007, 13h06

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