Transaction Isolation Level Bereiche

Was sind die scoping-Regeln für transaction isolation levels in SQL Server 2005? Ich weiß, was die verschiedenen Ebenen bedeuten, aber nicht, wie man richtig anwenden, wenn Sie außerhalb einer manuell Skript ausführen. Ich kann nicht finden, ein Leitfaden für den praktischen Einsatz in der Produktion-Qualität-code.

Offensichtlich, der Rahmen beginnt, wenn Sie einen Befehl wie diesen verwenden:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 

Aber wo wird es enden? Wenn ich den iso-Wert in einer gespeicherten Prozedur, und dann, proc ruft eine andere, nicht die verschachtelten proc-Erben? Noch besser ist, wenn ich eskalieren Sie den iso-Wert innerhalb der verschachtelten proc ist es zu tragen, zurück in die aufrufende proc? Tun transaction-Befehle wie BEGIN TRAN, ROLLBACK und COMMIT machen die irgendwelche Unterschiede?

Wenn eine gespeicherte Prozedur aufgerufen wird, die durch eine Anwendung oder ein agent job tun, die die Isolationsstufe Veränderungen bestehen in irgendeiner Weise? Muss ich immer wieder den Standard LESEN Sie VERPFLICHTET, am Ende jedes proc?

Ich würde es testen, in verschiedenen Situationen, aber ich weiß nicht, wie zu Lesen, was die aktuelle Isolationsstufe festgelegt ist.

  • Die Tatsache, dass der Umfang dieses geht über die aktuelle Transaktion (und, wegen connection pooling, über die aktuelle "session") können Sie brennen. Siehe diesem post die ich zu dem Thema geschrieben.
Schreibe einen Kommentar