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

MS SQL Server Discussion :

Question sur SP imbriquées, Transaction et Verrou


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par défaut Question sur SP imbriquées, Transaction et Verrou
    Bonjour

    J'ai une 1ere procédure stockée qui ouvre une transaction avec un "BEGIN TRAN T", suivis par diverses instructions de UPDATE/INSERT/SELECT/DELETE et vers le milieu de la SP j'execute une 2eme SP (dont je récupere la valeur) qui contient aussi un "BEGIN TRAN T" et des instructions UPDATE/INSERT/SELECT/DELETE sur les mêmes tables que ceux de la 1ere SP. Mais j'ai un probleme, en plein milieu de la 2eme procedure stocké, j'ai l'impression que y'a un blocage.... Ma requete tourne eternellement, je ne sais aps ce qui se passe alors je l'arrete.


    Ma question est très simple. Apres un BEGIN TRAN, toutes les tables sur lesquel on va travailler après seront verouillés, ma question est que comme dans la 1ere SP je verouille des tables, et que dans la 2eme SP (que j'appelle depuis la 1ere SP) je travaille sur les meme tables, est-ce que je ne serai pas confronté à un verrou mortel qui fait que j'ai le sentiment que ca bloque?

    Je viens de lire l'article de SQLPro daté du 24 novembre, et dans la logique plusieur transactions imbriquées sont considéré comme un et meme transaction, donc pas de verrou entre procedure stocké imbriqué. Mais pourquoi ma requete s'eternise (c'est juste une insert), alors que sans transaction ca passe?
    Je précise que je suis seul a bosser sur la base et qu'aucune transaction n'est ouverte avant de lancer la 1er SP

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Par défaut
    J'ai une 1ere procédure stockée qui ouvre une transaction avec un "BEGIN TRAN T", suivis par diverses instructions de UPDATE/INSERT/SELECT/DELETE et vers le milieu de la SP j'execute une 2eme SP (dont je récupere la valeur) qui contient aussi un "BEGIN TRAN T" et des instructions UPDATE/INSERT/SELECT/DELETE sur les mêmes tables que ceux de la 1ere SP. Mais j'ai un probleme, en plein milieu de la 2eme procedure stocké, j'ai l'impression que y'a un blocage.... Ma requete tourne eternellement, je ne sais aps ce qui se passe alors je l'arrete.
    Si tu lances un sp_lock et sp_who dans une autre session, tu devrais voir quelle table est verrouillée/bloquante. Utilises également dbcc inputbuffer(spid) pour voir l'ordre qui bloque.

    Ma question est très simple. Apres un BEGIN TRAN, toutes les tables sur lesquel on va travailler après seront verouillés, ma question est que comme dans la 1ere SP je verouille des tables, et que dans la 2eme SP (que j'appelle depuis la 1ere SP) je travaille sur les meme tables, est-ce que je ne serai pas confronté à un verrou mortel qui fait que j'ai le sentiment que ca bloque?
    Par défaut, seules les données que tu mets à jour sont verrouillées, à moins d'être en mode d'isolation 3 qui pose également des verrous sur les données lues. Ca ne pose pas de problème de travailler sur la même table ensuite (il faudrait détailler un peu ce que tu fais) car il déroule chaque mise à jour séquentiellement puisque c'est le même thread.


    Pour terminer, MS fournit une procédure qui liste les processus verrouillés
    http://support.microsoft.com/kb/271509/EN-US/

    bon courage

  3. #3
    Membre très actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par défaut
    Ok je vais voir ce que peuvent faire ces SP, merci pour les infos

Discussions similaires

  1. question sur la transaction
    Par LionNar dans le forum WinDev
    Réponses: 2
    Dernier message: 09/01/2008, 16h10
  2. Question sur ma structure imbriquées
    Par beegees dans le forum Débuter
    Réponses: 7
    Dernier message: 16/12/2007, 13h43
  3. Question sur instruction With imbriquée
    Par LadyWasky dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/10/2005, 11h26
  4. [débutant] Questions sur le Transact-SQL
    Par nagty dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 05/07/2005, 17h43
  5. question sur les transactions
    Par vbcasimir dans le forum Débuter
    Réponses: 3
    Dernier message: 07/06/2005, 10h15

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