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

Outils SQL Server Discussion :

Deadlock en exportant des données avec BCP


Sujet :

Outils SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut Deadlock en exportant des données avec BCP
    Bonjour,

    J'essaie d'exporter dans un fichier (avec bcp en mode natif) des changements fournis par les fonctions de Change Tracking.
    Pendant que bcp exécute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... FROM T RIGHT OUTER JOIN CHANGETABLE(CHANGES T, @last_synchronization_version) ...
    pour obtenir les changements, une application fait des INSERTs en masse dans la table T.

    Le bulk copy se fait éjecter par SQL Server avec l'erreur suivante
    SQLState = 40001, NativeError = 1205
    Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]Transaction (Process ID 107) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

    Les changements dans T sont à 99% des inserts.
    Si j'ajoute WITH(NOLOCK) derrière FROM T, le fichier .dat est inutilisable.
    Pouvez-vous m'aider?

  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 768
    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 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    faire de la lecture sale (READ UNCOMMITTED), qui plus est avec un tag de table est généralement une haute stupidité car vous pouvez lire deux fois les mêmes lignes ou bien en oublier !
    Il suffit d'utiliser le niveau d'isolation approprié, par exemple en utilisant le niveau SNAPSHOT.

    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
    Inscrit en
    Août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il suffit d'utiliser le niveau d'isolation approprié, par exemple en utilisant le niveau SNAPSHOT.

    A +
    Oui c'est ce que je m'apprêtais à faire mais y a-t-il un moyen de positionner le niveau d'isolation en utilisant BCP? Ou faut-il passer par une table intermédiaire?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    Utilisez une procédure stockée qui renvoie un SELECT.

    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/ * * * * *

Discussions similaires

  1. [2008] Exporter des données avec la commande BULK EXPORT ou l'utilitaire bcp
    Par marctoralba dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/07/2014, 11h45
  2. Exporter des données avec numéroauto
    Par clement2009 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/06/2011, 14h51
  3. [AC-2003] Export des donnés avec images vers page web
    Par chernirachid dans le forum IHM
    Réponses: 3
    Dernier message: 26/10/2009, 11h31
  4. Exportation des données avec Insert
    Par AdHoc dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 23/07/2007, 11h35
  5. Exporter des données avec les insert
    Par maximenet dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/04/2006, 16h20

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