L'article en ligne MSDN « Isolation de capture instantanée dans SQL Server » indique:
- «Un niveau d'isolement a une portée à l'échelle de la connexion et une fois défini pour une connexion avec l'instruction SET TRANSACTION ISOLATION LEVEL, il reste en vigueur jusqu'à ce que la connexion soit fermée ou qu'un autre niveau d'isolement soit défini. Lorsqu'une connexion est fermée et renvoyée au pool , le niveau d'isolement de la dernière instruction SET TRANSACTION ISOLATION LEVEL est conservé . Les connexions suivantes réutilisant une connexion regroupée utilisent le niveau d'isolement qui était en vigueur au moment où la connexion est regroupée "
N'est-ce pas un paragraphe contradictoire ("jusqu'à" vs "retenu")?
Ensuite, si "le niveau d'isolement de la dernière instruction SET TRANSACTION ISOLATION LEVEL est conservé " après la fermeture de la connexion et son retour dans un pool, comment il doit être compris:
- que le niveau d'isolement par défaut aura une valeur arbitraire (différentes connexions dans le pool auront différents niveaux d'isolement, et sa valeur dépendra de la connexion étant rouverte)?
- ou toutes les valeurs par défaut sur toutes les connexions dans votre pool seront modifiées pour durer? mais encore une fois assez inconnu à l'avance?
Pas pour moi, mais je peux voir qu'il y a d'autres façons de le lire. Si vous souhaitez que la documentation soit mise à jour pour la rendre plus claire, le bon endroit pour en faire la demande est sur Microsoft Connect . Les personnes ici ne gèrent pas la documentation Microsoft.
Si vous réutilisez une connexion regroupée, alors oui, le niveau d'isolement "préexistant" est celui qui était en vigueur lors de la dernière fermeture de la connexion regroupée. La meilleure pratique consiste à définir explicitement le niveau d'isolement nécessaire lors de la connexion.
Non.
la source
SQL Server 2014 réinitialise désormais le niveau d'isolement des connexions regroupées pour la plupart des versions du protocole TDS. Les versions précédentes de SQL Server n'avaient pas réinitialisé le niveau d'isolement.
la source