begin process at 2008 08 29 20:54:12
1 233 885 membres
407 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Transactions imbriquer et niveau d'isolation [ SQL Server, MSDE, SQL Express / Procédures Stockées ] (Malkuth)

Transactions imbriquer et niveau d'isolation le 07/10/2006 15:16:44

Malkuth
Membre Club
Salut à tous : Deux questions sur les transactions

A)

Si j'imbrique deux Transaction que je valide la transaction 'Fille', et que je fais plus tard un rollback sur la transaction 'mère',
la transaction 'fille' serat t'elle annuler ou pas?

B)

Quelqu'un peut il m'indiquer clairement les différence entre le niveau d'isolation READCOMMITED et SERIALIZABLE.

merci...

Re : Transactions imbriquer et niveau d'isolation le 08/10/2006 20:10:33

skweeky
Membre Club
(Admin CS)

Salut

A) Les transactions imbriquées sont une horreur pour résumer le fonctionnement dès qu'il y a COMMIT ou ROLLBACK celà s'applique à toutes les transactions actives de la session pour le comprendre voici un petit code :

CREATE

TABLE #t

(

clef

int identity ( 1 , 1 ) not null,

nom

varchar ( 10 ) not null

)

BEGIN

TRAN A

INSERT

INTO #t ( Nom ) VALUES ( 'A' )

SELECT

* FROM #t

BEGIN

TRAN B

INSERT

INTO #t ( Nom ) VALUES ( 'B' )

SELECT

* FROM #t

COMMIT

TRAN B

INSERT

INTO #t ( Nom ) VALUES ( 'C' )

SELECT

* FROM #t

ROLLBACK

TRAN B

INSERT

INTO #t ( Nom ) VALUES ( 'D' )

SELECT

* FROM #t

DROP

TABLE #t

Il est donc impossible ou presque d'imbriquer des transactions,  la seul exception étant avec un SAVE TRANSACTION XXX où un ROLLBACK XXX permet de revenir au point du SAVE mais c'est tout.

B) Le ReadCommited est le niveau par défaut, le Serializable celui-ci qui vérouille le plus les ressources, il y en a 1 entre les 2 qui est repeatable read.

- ReadCommited : Dans ce mode quand on lit on essaye d'acquérir un vérrou Partagé (S), on attend si la ressource est acctuellement en écriture, quand on obtient ce verrou on lit et on libère immédiatement après le SELECT. Quand on écrit c'est un verrou Exclusif (X) qui attend que la ressource ne soit ni lue, ni écrite, le vérrou est libéré à la fin de la transaction.

- Repeatable Read : Seule différence c'est que le vérrou (S) en lecture est libéré à la fin de la transaction. Dans ce mode quand on lit une ressource elle ne peut être modifiée par une autre transaction avant la fin de la notre.

- Serializable : Ce niveau de vérouillage est identique au précédent et en plus il interdit les insertion et suppression de données de la table. Par exemple si je séléctionne tous les enregistrements de mes clients français sur ma table, j'interdis à tout autre transaction d'inserer un client français ou d'en supprimer un.

Voilà j'expère que c'est clair.

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration


Re : Transactions imbriquer et niveau d'isolation le 08/10/2006 23:28:39

Malkuth
Membre Club
Trés clair en effet  mais petite précision a propos de ma premiere question :

le problème c'est par exemple : si j'ai une grosse procédure (en temps d'exec) utilisant une transaction mais que je veux pouvoir a l'intérieur effectuer une série de requette en libérant les vérous de cette suite de requette avant la fin de toute la procédure(je sait pas si c'est clair ...),existe'il une possibiliter de libérer certains vérous avant la fin d'une transaction?


Re : Transactions imbriquer et niveau d'isolation le 22/10/2006 17:47:25

skweeky
Membre Club
(Admin CS)
Réponse acceptée !
A moins de me tromper, je ne crois pas qu'il y ai de moyen de liberer des verrous avant la fin d'une transaction


Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration


Classé sous : niveau, transaction, transactions, imbriquer, isolation

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS