p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité régulier
    Inscrit en
    août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 34
    Points : 5
    Points
    5

    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 SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    14 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 14 638
    Points : 32 510
    Points
    32 510

    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
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Invité régulier
    Inscrit en
    août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 34
    Points : 5
    Points
    5

    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 SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    14 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 14 638
    Points : 32 510
    Points
    32 510

    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
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

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