Как работают намеренные блокировки SQL Server? - PullRequest
0 голосов
/ 02 мая 2018

Я прочитал несколько статей, касающихся блокировки намерений, что существует множество блокировок намерений, которые являются намеренными общими (IS), намеренными исключительными (IX), общими с целевыми исключениями (SIX), обновлением намерений (IU), обновлением общих намерений ( SIU), Обновление намерений эксклюзивно (UIX). Иногда я обнаруживал эти блокировки в статистике блокировок, и мне было сложно определить каждую из этих блокировок, потому что иногда возникало несколько проблем с производительностью

Для чего фактически используется блокировка намерений? как каждая из этих намеренных блокировок работает против блокировок друг друга в параллельности базы данных?

спасибо

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

У меня есть еще немного информации по этому вопросу.

Intent shared (IS) В этом режиме блокировки SQL Server защищает запрошенные или полученные общие (S) блокировки для некоторых ресурсов ниже в иерархии блокировок.

Исключительные намерения (IX) Этот режим блокировки представляет собой расширенный набор намеренных общих (IS) блокировок, которые не только защищают блокировки на ресурсах ниже в иерархии, но также защищают запрошенные или приобретенные исключительные (X) блокировки на некоторых ресурсах ниже в иерархии.

Совместно с намеренным исключением (SIX) Этот режим блокировки защищает запрошенные или приобретенные общие (S) блокировки для всех ресурсов ниже в иерархии и намеренные исключительные (IX) блокировки для некоторых ресурсов ниже в иерархии. Только ресурс, совместно используемый с намеренной исключительной блокировкой (SIX), может существовать одновременно для ресурса, чтобы предотвратить его изменение другими транзакциями. Однако ресурсы более низкого уровня могут иметь намеренные общие (IS) блокировки и могут считываться другими транзакциями.

Намеренное обновление (IU) SQL Server использует этот режим блокировки только для ресурсов страницы, чтобы защитить запрошенные или приобретенные блокировки обновления (U) для всех ресурсов нижнего уровня и преобразует его в намеренное исключение (IX) блокировка, если транзакция выполняет операцию обновления.

Совместное обновление намерений (SIU) Этот режим блокировки представляет собой комбинацию общих (S) и блокировочных обновлений (IU) блокировок и возникает, когда транзакция получает каждую блокировку отдельно, но удерживает их одновременно.

Обновление намеренного исключения (UIX) Этот режим блокировки является результатом комбинации обновлений (U) и исключительных намерений (IX), которые транзакция получает отдельно, но удерживает в то же время.

0 голосов
/ 02 мая 2018

Умышленные блокировки - это повышение производительности, которое позволяет SQL Server быстро проверять блокировки на более детальном уровне.

https://www.sqlpassion.at/archive/2016/05/16/why-do-we-need-intent-locks-in-sql-server/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...