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 SQL Server Discussion :

Génération et utilisation de Scripts générés par SSMS


Sujet :

Administration SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 22
    Points : 28
    Points
    28
    Par défaut Génération et utilisation de Scripts générés par SSMS
    Bonjour,

    J'utilise SQL Server 2008. J'aurais deux questions concernant les scripts générés en utilisant (Tasks> generate Scripts) de SSMS.
    Lorsque je lui demande de me générer le script data d'une table il me génère un lot de requête de type :

    insert table (champ1, ..., champn) values (val1, ... valn)
    insert table (champ1, ..., champn) values (val1, ... valn)
    ...
    insert table (champ1, ..., champn) values (val1, ... valn)

    le problème c'est que vu le volume de donnée il me génère un fichier script qui fait prés de 1 Go...
    Résultat je ne réussis pas à ouvrir ce script via SMS pour l’exécuter sur ma table (a priori le fichier est trop gros...)

    J'ai donc pensé a lui faire générer le script comme peut le faire SQLYog (Client MySQL) de la forme
    insert table (champ1, ..., champn) values
    (val1, ... valn),(val1, ... valn),(val1, ... valn)
    ce qui me ferait gagner pas mal de place, mais je n'ai pas trouvé l'option (celles dispo depuis le bouton Advanced). Quelqu’un sait'il comment faire ?

    Autre question toujours lié à la taille de mon script si ma première hypothese ne trouvait pas de solution, c'est comment faire jouer un gros fichier de script à SQL Server sans passer par SMS ?

    Merci de vos réponses à venir.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    A priori s'il s'agit de réinsérer tout un lot de lignes d'une table dans une autre, il est peu performant de le faire par le biais des INSERT. Il vaut mieux utiliser une insertion binaire en mode natif via fichier de données.
    Pour cela vous devez utiliser bcp.exe (en ligne de commande) pour générer le fichier binaire d'export, puis au choix bcp.exe ou la commande BULK INSERT pour l'import.
    Ceci ira 10 à 1000 fois plus vite qu'un lot de commande INSERT en sus de générer une fichier beaucoup plus petit...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 22
    Points : 28
    Points
    28
    Par défaut
    Merci pour la réponse. Effectivement ca me génère un fichier de 150 Mo à la place d'un fichier d'1 Go et cela importe mes ~1 359 000 lignes en moins de 40 s

    Ca fonctionne bien sur ma plateforme de recette, sous ensemble de plateforme de prod.Pour la prochaine fois j'utiliserai cette méthode mais je me trouve quand même avec mon premier fichier à intégrer (le script SQL) provenant de la prod et fourni par mon client.

    Je suis d'accord ce sera vraisemblablement très long mais comment le faire en ligne de commande.

Discussions similaires

  1. [CC] Script généré par flash CC html5 canvas est lent
    Par Emilie64 dans le forum Intégration
    Réponses: 2
    Dernier message: 26/10/2015, 14h13
  2. Réponses: 2
    Dernier message: 27/04/2014, 14h41
  3. utiliser un tableau généré par un tableur
    Par Alexdezark dans le forum Excel
    Réponses: 4
    Dernier message: 16/10/2008, 07h47
  4. Réponses: 1
    Dernier message: 26/03/2008, 17h57
  5. [Upload] Problème affichage fichier généré par script
    Par mathieugamin dans le forum Langage
    Réponses: 7
    Dernier message: 22/11/2006, 12h18

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