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

Применимо к:SQL ServerУправляемый экземпляр SQL Azure

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

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

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

Для получения дополнительной информации об уровне изоляции см. SET TRANSACTION ISOLATION LEVEL.

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

Уровень изоляции Supported Honored
READ UNCOMMITTED No Не гарантировано
READ COMMITTED Yes Yes
REPEATABLE READ No No
SNAPSHOT ISOLATION No No
SERIALIZABLE No No