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 :

copie de données et log


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 19
    Points
    19
    Par défaut copie de données et log
    Bonjour,

    Un projet qui me pose un problème au niveau de leur log...

    Ils executent une transaction de type :

    INSERT INTO Table2
    SELECT *
    FROM Table1

    Dans un calculateur C++, et la table étant très volumineuse elle explose le Journal des transactions à chaque fois...

    Je leur proposerai bien une commande ce type :

    bcp T1 in T2.dat -T -c

    Ou un lot DTS (c'est du 2000)


    Mais j'ai peur qu'ils n'arrivent pas à gerer les fichiers depuis le calculateur...

    Auriez vous une autre solution à me proposer (hormis l'augmentation exponentiel du journal...) ?

  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 781
    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 781
    Points : 52 770
    Points
    52 770
    Billets dans le blog
    5
    Par défaut
    Quel intérêt y a t-il à dupliquer des données déjà existantes ????

    Commencez par poser les bonnes questions.

    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
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Pour eux c'est une sauvegarde de la table avant certains traitements et donc possibilité de retour arrière en cas de probleme...

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Pour profiter d'une journalisation minimale, vous pourriez par exemple créer votre table avec la clause SELECT INTO (Il faudrait au préalable basculer en mode BULK LOGGED ou SIMPLE).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ALTER DATABASE maBase SET REVOVERY BULK_LOGGED
    ...
     
    SELECT * INTO Table2
    FROM Table1
     
    ....
     
    ALTER DATABASE maBase SET REVOVERY FULL
    Une fois la transaction réalisée vous pouvez soit récupérer vos données soit détruire la table de sauvegarde de vos données avant traitement.


    ++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Je suis déjà en mode de récup simple...

    En revanche le "select into" empeche la journalisation ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Je viens de me rendre compte que j'avais déjà testé cette soluce mais même constat au niveau des logs...

  7. #7
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    En revanche le "select into" empeche la journalisation ?
    Non il n'empêche pas la journalisation mais il la réduit par rapport à une opération comme INSERT INTO ...

    ++

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 781
    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 781
    Points : 52 770
    Points
    52 770
    Billets dans le blog
    5
    Par défaut
    Il serait beaucoup plus intelligent dans ce cas de gérer une transaction....

    A +

    Citation Envoyé par Liloye Voir le message
    Pour eux c'est une sauvegarde de la table avant certains traitements et donc possibilité de retour arrière en cas de probleme...
    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/ * * * * *

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Apparament ils ont essayé de gerer ca par proc stock mais toujours meme problematique et ralentissement en plus (je m'étonne)

  10. #10
    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,

    Si vous êtes déjà en mode de récupération simple et que votre transaction explose le journal, une façon de passer outre le problème est de "découper" l'INSERT en plusieurs INSERT manipulant un petit nombre de lignes...

    @++

Discussions similaires

  1. Créer des Fichiers log pour la copie de données
    Par NedaRyme dans le forum VBScript
    Réponses: 3
    Dernier message: 14/05/2009, 14h01
  2. [JTextArea] Copie de données - optimisation
    Par Djakisback dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 28/03/2006, 13h21
  3. [VBA-E] Problème de copie de données
    Par JM_stp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/02/2006, 00h33
  4. Réponses: 3
    Dernier message: 24/04/2005, 14h19
  5. Copie des données d'une table d'une base Interbase 6
    Par Djedjeridoo dans le forum InterBase
    Réponses: 6
    Dernier message: 02/02/2004, 09h39

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