Каковы правила определения уровней изоляции транзакций в SQL Server 2005? Я знаю, что означают разные уровни, но не как правильно применять их вне ручного запуска script. Я не могу найти руководство для практического использования в коде качества продукции.
Очевидно, что область действия начинается, когда вы используете такую команду:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Но где это заканчивается? Если я устанавливаю уровень iso в хранимой процедуре, а затем этот процесс вызывает другой, наследует ли вложенный пакет? Еще лучше, если я эскалирую уровень iso внутри вложенного proc, он будет возвращаться в вызывающий процесс? Имеют ли транзакционные команды, например BEGIN TRAN, ROLLBACK и COMMIT, какие-либо различия?
Когда хранимая процедура вызывается приложением или заданием агента, изменения уровня изоляции сохраняются в некотором роде? Должен ли я всегда возвращаться к стандартным READ COMMITTED в конце каждого процесса?
Я бы тестировал его в разных ситуациях, но я не знаю, как читать, на что установлен текущий уровень изоляции.