Der MSDN-Online-Artikel " Snapshot-Isolation in SQL Server " lautet:
- "Eine Isolationsstufe hat einen verbindungsweiten Bereich. Sobald sie für eine Verbindung mit der Anweisung SET TRANSACTION ISOLATION LEVEL festgelegt wurde, bleibt sie wirksam, bis die Verbindung geschlossen oder eine andere Isolationsstufe festgelegt wird. Wenn eine Verbindung geschlossen und an den Pool zurückgegeben wird wird die Isolationsstufe der letzten Anweisung SET TRANSACTION ISOLATION LEVEL beibehalten . Nachfolgende Verbindungen, die eine gepoolte Verbindung wiederverwenden, verwenden die Isolationsstufe, die zum Zeitpunkt des Zusammenschlusses der Verbindung gültig war. "
Ist es nicht ein widersprüchlicher Absatz ("bis" vs. "beibehalten")?
Wenn dann "die Isolationsstufe von der letzten Anweisung SET TRANSACTION ISOLATION LEVEL beibehalten wird ", nachdem die Verbindung geschlossen und an einen Pool zurückgegeben wurde, wie sollte dies verstanden werden:
- dass die Standardisolationsstufe einen beliebigen Wert hat (verschiedene Verbindungen im Pool haben unterschiedliche Isolationsstufen und ihr Wert hängt von der Verbindung ab, die erneut geöffnet wird)?
- oder werden alle Standardwerte für alle Verbindungen in Ihrem Pool auf die letzten geändert? aber schon mal ganz unbekannt vorher?
Nicht für mich, aber ich kann sehen, dass es andere Möglichkeiten gibt, es zu lesen. Wenn Sie möchten, dass die Dokumentation übersichtlicher wird, können Sie dies an Microsoft Connect anfordern . Die Leute hier pflegen keine Microsoft-Dokumentation.
Wenn Sie eine gepoolte Verbindung wiederverwenden, ist die "bereits vorhandene" Isolationsstufe diejenige, die beim letzten Schließen der gepoolten Verbindung wirksam war. Es wird empfohlen, die für die Verbindung erforderliche Isolationsstufe explizit festzulegen.
Nein.
quelle
SQL Server 2014 setzt jetzt die Isolationsstufe der gepoolten Verbindungen für die meisten TDS-Protokollversionen zurück. Frühere SQL Server-Versionen haben die Isolationsstufe nicht zurückgesetzt.
quelle