web-dev-qa-db-fra.com

Est-ce que j'ajoutera Lecture Engée après la définition de niveau d'isolement de transaction sérialisable?

Dans une procédure stockée, j'ai ce qui suit: (SQL Server 2008)

 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
 BEGIN TRANSACTION getStuff
 BEGIN TRY 
    /*  some selects, updates, etc, etc. */
    ....
    COMMIT TRANSACTION getStuff
 END TRY
 BEGIN CATCH 
   ...
 END CATCH

Comme il s'agit de la transaction basée sur la transaction, ma pensée était que le reste des connexions de base de données ne sera pas affectée par le sérialisable.

Dois-je définir implicitement un niveau d'isolement pour lire commis après mon commit? Cela affectera-t-il négativement d'autres connexions entre mon serveur d'applications et serveur de base de données?

9
CFNinja

La commande est TRANSACTION ISOLATION LEVEL, ne pas SERVER ISOLATION LEVEL. Cela ne change que le niveau d'isolement pour la portée de la transaction.

6
Erik Darling

Non, vous n'avez pas à définir implicitement le niveau d'isolement à lire commis.

Des livres en ligne .

Si vous publiez le niveau d'isolement de la transaction défini dans une procédure ou une gâchette stockée, lorsque l'objet renvoie le contrôle, le niveau d'isolation est réinitialisé au niveau en vigueur lorsque l'objet a été invoqué. Par exemple, si vous définissez la lecture répétable dans un lot et que le lot appelle ensuite une procédure stockée qui définit le niveau d'isolement sur Serializable, le réglage du niveau d'isolation revient à une lecture répétable lorsque la procédure stockée renvoie le contrôle sur le lot.

5
SqlWorldWide

La commande que vous avez postée vient d'exécuter la transaction dans le SP avec TRANSACTION ISOLATION LEVEL SERIALIZABLE. D'autres connexions seront par défaut au niveau d'isolement par défaut - lu engagée (sauf indication contraire d'un niveau d'isolement différent explicitement).

Il y a une excellente série de Paul White - Niveaux d'isolation SQL Server: une série qui vous aidera à comprendre en profondeur quels niveaux d'isolement signifie et font quand ils sont utilisés.

3
Kin Shah