Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Inscrit en
    août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 34
    Points : 4
    Points
    4

    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 :
    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 Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 294
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

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

    Informations forums :
    Inscription : mai 2002
    Messages : 13 294
    Points : 27 316
    Points
    27 316

    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é de passage
    Inscrit en
    août 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 34
    Points : 4
    Points
    4

    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 Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 294
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

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

    Informations forums :
    Inscription : mai 2002
    Messages : 13 294
    Points : 27 316
    Points
    27 316

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •