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 :

[Verrous Transactions] SELECT hors transactions respectent ils les verrous ?


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut [Verrous Transactions] SELECT hors transactions respectent ils les verrous ?
    Bonjour,

    Je me demandais si les requêtes SELECT qu'on ne met dans aucune transaction respectent bien les verrous posés par les autres transactions en cours (lectures propres)

    Si oui, on pourrait dire qu'ils sont en "Read Commited"..

    Et le seul intérêt de mettre des SELECT dans des transactions serait dans des transactions Read.UnCommited pour avoir des lectures sales "dirty reads".

    Donc finalement autant ne jamais mettre de SELECT dans des transactions, ce qui permettrait de réduire au minimum les transactions (si ce sont des lectures propres qu'on veut)..

    Je suis en train de chercher sur la msdn mais je ne trouve pas vraiment ma réponse.
    http://msdn2.microsoft.com/fr-fr/library/ms190612.aspx

  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 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Par défaut SQL Server fonctionne au niveau d'isolation READ COMMITTED.

    Toute requête est une transaction : un simple SELECT, un ALTER sont donc des transactions implicites. Lorsque vous posez un BEGIn TRAN vous faites une transaction explicite.

    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 confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    Merci SqlPro,

    effectivement, je viens juste de lire l'intégralité du chapitre sur les transactions de la msdn (je le conseille vivement).. Je comprends mieux.

    Comme sql server est en autocommit dans ce cas là, et que c'est read.commited par défaut, le select va respecter les verrous.

    Par contre, il y a aussi un mode "implicite" dans sql server qu'on peut activer (désactivé par défaut), qui est encore un peu différent du autocommit, car on ne fait jamais de begin transaction, mais seulement des rollback ou des commit. Et juste derrière se crée une nouvelle transaction automatiquement. Le rollback ou le commit ne se fait plus sur une seule instruction comme en autocommit mais sur toutes les instructions jusqu'au précédent commit ou rollback.

    en tout cas, merci SqlPro
    vous m'avez beaucoup aidé sur différentes questions depuis que je viens sur ce forum. je met en résolu.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/11/2013, 14h16
  2. Réponses: 5
    Dernier message: 19/09/2007, 14h23
  3. Tables temporaires hors transaction ?
    Par vgaudeul dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 11/04/2006, 11h42
  4. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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