begin process at 2012 05 27 03:33:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Procédures Stockées

 > 

Transactions imbriquer et niveau d'isolation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Transactions imbriquer et niveau d'isolation

samedi 7 octobre 2006 à 15:16:44 | Transactions imbriquer et niveau d'isolation

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...
dimanche 8 octobre 2006 à 20:10:33 | Re : Transactions imbriquer et niveau d'isolation

skweeky

Membre Club Administrateur CodeS-SourceS

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

dimanche 8 octobre 2006 à 23:28:39 | Re : Transactions imbriquer et niveau d'isolation

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?

dimanche 22 octobre 2006 à 17:47:25 | Re : Transactions imbriquer et niveau d'isolation

skweeky

Membre Club Administrateur CodeS-SourceS
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


Cette discussion est classée dans : niveau, transaction, transactions, imbriquer, isolation


Répondre à ce message

Sujets en rapport avec ce message

Pb avec les transactions. [ par gbourgeois0019 ] Bonjour à tous,Ma question est la suivante : Je me connecte à une DB SQL Server 2005 CE et je commence une transaction. Ensuite je me déconnecte et pu Hébreu [ par fdouieb ] Bonjour,Je doit creer une Table Client qui possede un colonne "nom" en anglais et une colonne "nom" en hébreu.J'ai utilisé la notion de classement lor transaction [ par papiona ] saluutbon j'ai besoin de connaitre quelque informations  aprôpos de la transaction dana sql server 2000.quell'est la difference entre la transaction i Serveur BD - client avec interface comme open office BD [ par younes371 ] Bonjour,j'ai un grand problème et vraiment je me galère depuis lengtemps, après des recherches et des recherches sans aucun resultat pertinante, je vi Probleme de recursivité [ par citt ] Bonjour,Je recherche actuellement a recuperer en une seule requete le superieur d'un employé precis, voici mes tables :|----------------------|| emplo Problème lors de la création d'une procédure [ par vinouinthesky ] Tout d'abord bonjour :). Voila, j'ai un petit problème c'est que j'essaye de créer une procédure qui permette de supprimer les lignes en double dans u access [ par micou26 ] Salut,Dans mon formulaire, je voudrais que des que l'ingenieur saisi son nom, son niveau se mette automatiquement. Sachant qu'une table ingenieur est nobre max d'insertions dans une transaction oracle [ par younes523 ] bonjour tt le monde .Est ce que quelqu'un a une idée sur le nombre maximum d'enregistrements qui peuvent etre insérés dans une seule transaction oracl TRANSACTIONS [ par awjan ] Bonjour, je voudrais savoir comment on peut gérer les transactions genre (deux personnes qui travaillent sur les mêmes données, l'un des deux supprime INSERT avec paramètres, du soucis et des tracas [ par cmasson ] bonjour à tous,Je développe un site ASP.net / VB.net avec sql server express 2005 et Visual web Dev 2008 en version light. Je dois faire un INSERT dan


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,263 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales