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 :

tablockx sans transaction


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut tablockx sans transaction
    Bonjour,

    petite question tout bête... dans un programme que j'administre, je viens de constater que des select champ from table with tablockx étaient réalisés mais qu'il n'y avait pas de transaction associée à ces requêtes pour effectuer un begin / commit - rollback...

    le programme fonctionne correctement, mais je me demandais quelles étaient les conséquences de cela et si je devais le corriger asap ?

    merci de votre aide !

  2. #2
    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 : 44
    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
    Par défaut
    Bonjour,

    En effet cela n'est pas nécessaire dans votre cas.

    Toute instruction "seule" est auto-transactionnée.

    Vous pouvez utiliser l'instruction BEGIN TRANSACTION ... COMMIT TRANSACTION pour "grouper" au moins deux instructions SQL et faire comme s'il n'en existait qu'une : si l'un des deux échoue, alors aucune des deux ne sera validée, et vous reviendrez à l'état des tables telles qu'elles étaient avant la transaction.

    Le fait d'utiliser TABLOCKX me semble être une mauvaise chose, en tout cas à priori, car cela empêche toute modification de la table qui le subit, ce qui entraîne donc une faiblesse à la concurrence.
    Mais il se peut que votre application en ait besoin.

    L'équivalent de TABLOCKX si vous trouvez plus élégant de ne pas utiliser d'indicateur de table est SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

    @++

  3. #3
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    c'est bien ce que je pensais...

    merci de votre réponse...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Transact SQL] GETDATE() sans heure
    Par jowsuket dans le forum Langage SQL
    Réponses: 9
    Dernier message: 18/11/2015, 13h04
  2. Base de données sans fichier de transaction
    Par mahieus dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/01/2008, 19h14
  3. [EJB3 Entity] Usage de persist() en transaction ou sans ?
    Par tiamat dans le forum Java EE
    Réponses: 2
    Dernier message: 17/10/2007, 07h52
  4. Exécution d'une requête sans stocker les transactions
    Par Actarus69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 24/03/2006, 12h45
  5. Transaction sans journalisation ?
    Par TotalMarsu dans le forum Oracle
    Réponses: 23
    Dernier message: 04/04/2005, 14h08

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