19.04.2022, 13:59 | #1 |
Участник
|
Group by Hash Match (Aggregate) blocking
Всем привет.
Ко мне недавно с вопросом обратились коллеги. Увидели странное поведение аксапты. Есть запрос с фильтрацией и group by. И на нем висело целое дерево заблокированных запросов на вставку записи. Вопрос был, как такое возможно. Обычный запрос на чтение с фильтрацией и группировкой заблокировал вставку данных в табличку. Погуглил тему. Вроде бы такое возможно (если я правильно все понял) https://sqlsunday.com/2014/06/15/blo...ate-operators/ https://sqlserverfast.com/epr/hash-match/ https://dba.stackexchange.com/questi...atch-aggregate https://web.archive.org/web/20160512...ggregates.aspx https://docs.microsoft.com/en-us/arc...hash-aggregate Попробовал сам построить пример с блокировкой. Не получается. Кто-нибудь встречался с таким в аксапте ? (я - нет и не удалось воспроизвести) Используется Ax2009 |
|
19.04.2022, 14:21 | #2 |
Moderator
|
Мне все-таки кажется что blocking/non-blocking aggregation относиться не к блокировке записей на обновление/вставку/удаление, а на то, что в каких-то случаях операция аггрегирования может исполнятся параллельно (на другом процессоре) с операциями выборки, а в каких-то случаях операция аггрегирования блокируется до того, пока сортировка результатов выборки не закончиться.
Вообще - основная идея Read Committed Snapshot Isolation - это обеспечить чтобы читатели не блокировали писателей. Если такая блокировка случилось то есть такие варианты:
|
|
|
За это сообщение автора поблагодарили: Logger (10). |
19.04.2022, 14:37 | #3 |
Участник
|
Пока строил пример удалось еще создать такой пример
Джоб 1 1. Идет блокировка записи в транзакции 2. Идет долгий запрос с группировкой Джоб 2 1. Идет блокировка записи в транзакции. В итоге монитор блокировок показал что блокировка идет от запроса с группировкой. Вероятно мы просто некорректно считали показания. Монитор показал какая сессия является хедблокером и какой в ней текущий запрос исполняется, но конечно это не значит что именно этот запрос и заблокировал все. |
|
Теги |
group by, lock, блокировки |
|
|