L'article en ligne MSDN " isolement d'instantané dans SQL Server " States:
N'est-ce pas le paragraphe auto-contradictoire ("jusqu'à" vs "retenu")?
Ensuite, si "le niveau d'isolement de la dernière instruction de niveau d'isolation de transaction défini est conservé" Après la fermeture de la connexion et le renvoyer à un pool, comment il faut comprendre:
Une connexion de la piscine aura le niveau d'isolement défini par le dernier client pour utiliser cette connexion. Oui, c'est vraiment ce effrayant.
Le long et le court est que si vous modifiez le niveau d'isolement d'une connexion, vous devez explicitement le régler sur READ COMMITTED
Avant la fermeture. Il est préférable de déclarer explicitement votre niveau d'isolement requis au début de tout lot, afin de vous assurer que votre code n'est pas affecté par quelqu'un d'autre d'autre être bâclé et le renvoyer à la valeur par défaut à la fin.
Ce comportement, tout en dérange, est apparemment par design .
N'est-ce pas un paragraphe auto-contradictoire ("jusqu'à" vs "retenu") ?
Pas pour moi, mais je peux voir qu'il y a d'autres moyens de le lire. Si vous souhaitez que la documentation mise à jour pour le rendre plus claire, le lieu de demande approprié pour la demander est sur Microsoft Connect . Les personnes ici ne maintiennent pas la documentation Microsoft.
Que le niveau d'isolement par défaut aura une valeur arbitraire (différentes connexions dans le pool auront des niveaux d'isolation différents et sa valeur dépendra de la connexion en cours de rompe) ?
Si vous réutilisez une connexion groupée, oui, le niveau d'isolement "préexistant" est celui qui était en vigueur lorsque la connexion groupée a été fermée. La meilleure pratique consiste à définir explicitement le niveau d'isolement nécessaire lors de la connexion.
ou toutes les valeurs par défaut sur toutes les connexions dans la piscine seront modifiées pour la dernière fois? Mais encore une fois assez inconnu avant la main ?
Non.
SQL Server 2014 réinitialise maintenant le niveau d'isolement des connexions groupées pour la plupart des versions de protocole TDS. Les versions SQL Server précédentes n'ont pas réinitialisé le niveau d'isolation.