|
|
Опубликовано 20.07.2016 14:02:51
|
|
|

NOLOCK При выборе этой опции SQL Server читает или изменяет данные без каких-либо блокировок. В этом случае пользователь может прочитать данные из незафиксированной транзакции или отката назад, известных как «грязные данные».
HOLDLOCK При выборе этой опции SQL Server сохраняет этот общий замок до конца всей транзакции, не выпуская его по ходу.
UPDLOCK При выборе этой опции SQL Server использует блокировку изменения вместо общего блокировки при чтении данных и сохраняет этот блокировку до конца всей транзакции или команды. Эта опция гарантирует, что несколько процессов могут одновременно читать данные, но только этот процесс может их изменять.
TABLOCK Когда выбран этот вариант, SQL Server установит общий блокировку на всю таблицу до завершения действия команды. Эта опция гарантирует, что другие процессы могут только читать и не изменять данные.
ПАГЛОК Эта опция является по умолчанию, и при выборе SQL Server использует общую блокировку страницы.
TABLOCKX (Эксклюзивный замок для стола) Когда выбран этот вариант, SQL Server наложит блокировку на всю таблицу до завершения команды или транзакции. Это помешает другим процессам читать или изменять данные в таблице.
HOLDLOCK удерживает общий блокировку до завершения всей транзакции и должен быть освобождён, как только заблокированный объект не нужен, что соответствует уровню изоляции СЕРИАЛИЗИРУЕМОЙ транзакции
Оператор NOLOCK выполняется без выдачи общего блокировки, что позволяет делать грязные чтения, что соответствует уровню изоляции READ UNCOMMITTED транзакций
PAGLOCK использует несколько блокировок страницы, при этом один стольный замок
READPAST позволяет sql-серверу пропускать любые заблокированные строки и выполнять транзакции, а для уровней изоляции READ некомментированных транзакций пропускать только блокировки RID, а не блокировки страниц, зон и таблицы
ROWLOCK обеспечивает использование rowlock
TABLOCKX обеспечивает использование эксклюзивной блокировки на уровне таблицы, которая предотвращает использование таблицы другими транзакциями во время транзакции
UPLOCK требует использования обновлений при чтении таблицы без общего блокировки
Примечание: Разница между блокировкой таблицы в базе данных ВЫБРАТЬ * ИЗ ТАБЛИЦЫ С (HOLDLOCK) Другие транзакции могут читать таблицу, но не могут обновлять или удалять ВЫБРАТЬ * ИЗ ТАБЛИЦЫ С (TABLOCKX) Другие транзакции не могут читать, обновлять и удалять таблицы |
Предыдущий:Блокировки, грязные чтения, неповторимые считывания и ложные считывания в SQLСледующий:SQL Server смотрит на тупиковую блокировку и освобождает её
|