Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 8936|Ответ: 0

SQL блокирует NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Скопировать ссылку]
Опубликовано 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 смотрит на тупиковую блокировку и освобождает её
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com