Zakresy poziomu izolacji transakcji

Jakie są zasady dotyczące zakresu poziomów izolacji transakcji w SQL Server 2005? Wiem, co oznaczają różne poziomy, ale nie wiem, jak prawidłowo je zastosować poza skryptem uruchamianym ręcznie. Nie mogę znaleźć przewodnika do praktycznego zastosowania w kodzie jakości produkcji.

Oczywiście zakres zaczyna się, gdy używasz polecenia takiego jak to:

<code>SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
</code>

Ale gdzie to się kończy? Jeśli ustawię poziom iso w procedurze przechowywanej, a następnie proc wywoła inny, czy zagnieżdżony proc odziedziczy go? Co więcej, jeśli eskaluję poziom iso wewnątrz zagnieżdżonego proca, czy przeniesie się on do procesu wywołującego? Czy polecenia transakcji, takie jak BEGIN TRAN, ROLLBACK i COMMIT, powodują różnice?

Kiedy przechowywany proc jest wywoływany przez aplikację lub zadanie agenta, zmiany poziomu izolacji pozostają w jakiś sposób? Czy zawsze muszę powrócić do domyślnego READ COMMITTED na końcu każdej procedury?

Testowałbym go w różnych sytuacjach, ale nie wiem, jak odczytać aktualny poziom izolacji.

questionAnswers(6)

yourAnswerToTheQuestion