Поделиться через


Уровни изоляции транзакций

Область применения: SQL Server Управляемый экземпляр SQL Azure

SQL Server не гарантирует, что подсказки блокировки будут учитываться в запросах, обращаюющихся к метаданным через представления каталога, представления совместимости, представления схемы сведений, создаваемые метаданными встроенные функции.

Во внутреннем режиме SQL Server ядро СУБД учитывает только уровень изоляции READ COMMITTED для доступа к метаданным. Если у трансляции есть уровень изоляции, например SERIALIZABLE, а внутри транзакции делается попытка осуществления доступа к метаданным при помощи представления каталога или встроенных функций, создающих метаданные, то эти запросы будут выполняться до завершения выполнения как READ COMMITTED. Однако в изоляции моментальных снимков доступ к метаданным будет запрещен из-за одновременных операций DDL. Это происходит из-за несоответствия версий метаданных. Таким образом, доступ в изоляции моментальных снимков может быть запрещен из-за:

  • Представления каталога

  • представлений совместимости;

  • Представления информационной схемы

  • встроенных функций, создающих метаданные;

  • групп хранимых процедур sp_help;

  • Процедуры каталога собственного клиента SQL Server

  • динамических административных представлений и функций.

Дополнительные сведения об уровнях изоляции см. в статье SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

В следующей таблице приведена сводка доступов к метаданным в различных уровнях изоляции.

Уровень изоляции Поддерживается Соблюдается
READ UNCOMMITTED No Не гарантируется
ЗАФИКСИРОВАННАЯ ОПЕРАЦИЯ ЧТЕНИЯ Да Да
REPEATABLE READ No No
SNAPSHOT ISOLATION No No
SERIALIZABLE No Нет