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 FROM SELECT (performance) [2008]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut INSERT FROM SELECT (performance)
    Bonjour à tous,

    J'ai plusieurs tables formatées de la même manière contenant chacune d'entre elles plusieurs millions de lignes ([crb1] [crb2] [crb3], etc).
    Je dois créer une table dite "agrégée" contenant un ensemble de [crb1] [crb2] [crb3] pouvant contenir plusieurs centaines de milliers de lignes.
    J'ai donc écrit une procédure stockée qui permet de faire un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO ... SELECT FROM [crb1] WHERE [conditions]
    !!

    Le problème c'est que ça prend un temps fou... J'ai un réel problème de performance !!
    Avez vous une autre solution à me proposer ??

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 599
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Si le but est de recharger la totalité des différentes tables dans une seule, et que vos volumes sont significatifs, il est nettement préférable de passer par un load et non par insert :
    - votre chargement sera extrèmement rapide
    - vous ne chargerez pas la log inutilement
    - vous pourrez profiter de l'opération pour mettre à jour vos statistiques
    Si en plus votre table cible est partitionnée, vous pourrez paralléliser le chargement de chacune des partitions

    Sur une table de plusieurs millions ou milliards de lignes, vous allez passer de plusieurs heures (voir jours ), à quelques minutes pour tout charger

  3. #3
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut
    C'est quoi le principe du LOAD je ne connais pas !! Plus d'explications s'il vous plait si possible

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 599
    Billets dans le blog
    10

  5. #5
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut
    OK...
    Je dois faire un bulk sur une query spécifique qui sera lancée sur chaque table. En fait je ne fais pas une copie totale de la table mais seulement une partie !!
    Et je dois faire un import avec bulk INSERT dans la table 'agrégée'.

    Est ce que bulk peut me faire cela tu penses ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut
    Bonjour,

    Sinon vous pouvez passer par SSIS ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/07/2012, 11h32
  2. Requête insert from select
    Par Sfaxiano dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/12/2011, 16h43
  3. [AC-2003] souci utilisation de INSERT INTO- SELECT- FROM- WHERE
    Par eugene_françois dans le forum Modélisation
    Réponses: 1
    Dernier message: 16/04/2010, 16h14
  4. insert into from select ?
    Par axel584 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/01/2005, 18h10
  5. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39

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