powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не отстреливает дедлоки
35 сообщений из 35, показаны все 2 страниц
Не отстреливает дедлоки
    #39805241
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Вчера тестовый сервер был обновлен с 2016 SP1 CU1 до 2016 SP1 CU7.
Обновление прошло нормально, но сегодня начались проблемы с дедлоками.

В текущий транзакциях на сервере две сессии взаимоблокируют друг друга, следующие висят на них.
Обычно sql server автоматом убивает одну из транзакций, но тут продолжают висеть, если не убрать руками.

С чем может быть связано и что можно сделать?
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805254
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите на каких ресурсах конфликт.
Было похожее - http://www.sql.ru/forum/1223955/blokirovka-processov-drug-druga
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805268
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

висят потому, что это не дэдлоки.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805274
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Запросы я отловил, разбираться почему вообще начались блокировки тоже нужно.

Это обновление таблицы и селект в неё же, обычно в похожих случаях отстреливает селект.

update [TABLE] set [sync_with_lc_status] = @P1 where [AID] = @P2

select top 1500 * from [TABLE] where [sync_with_lc_status] in (@P1, @P2) and [TABLE].[Status] in (@P3, @P4, @P5, @P6) order by [cito] desc, [AID] desc

По ссылке посмотрел, но решения проблемы я там не вижу(
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805276
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосоввисят потому, что это не дэдлоки.
В строках 2 и 3 разве не дэдлок?
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805280
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

Покажите для этих сессий wait_resource из sys.dm_exec_requests
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805283
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Владислав Колосоввисят потому, что это не дэдлоки.
В строках 2 и 3 разве не дэдлок?

Не обязательно.

Это могут быть разные потоки одних и тех же сессий.
Данные о блокировках собираются не снапшотом. В выборке вполне можно увидеть блокировки, которые не существовали в один момент времени (на вашей картинке не видно время ожидания).
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805290
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эти запросы с разных серверов.
3 столбец - время выполнения, на скриншоте макс 3 минуты, но висело и 20+

Сейчас сессии
87 и 75
87 - селект
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805309
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взаимоблокировки - это блокировки с положительно обратной связью: А блокирует Б, Б блокирует А и никто не хочет отпускать. Могут быть более длинные или с бОльшим количеством участников цепочки. Сервер отслеживает и прерывает выполнение одного из запросов.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805318
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

Хорошее определение, но к чему оно?

Пока оставив в сторону вопрос почему автоматически не отстреливает одну из транзакций начали разбираться, что за сервера с которых идут запросы.
Выяснилось, что второй сервер был создан копированием с первого и они похоже пытаются выполнить одно и тоже.
При этом никто не сообщил, что отвечает за второй сервер и он кому-то нужен, так что пока погасили его.

Текущую проблему конечно решило, но вопрос почему sql сервер похоже не считал это взаимоблокировокой и не убирал, хотя они именно что блокировали выполнение друг друга, остаётся открытым.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805320
Slava_Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после перехода с 14 на 16 мы тоже получили дедлоки,которые сиквел на отлавливал, в итоге написали отсрелку таких сессий.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805367
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionВладислав Колосов,

Хорошее определение, но к чему оно?

...

Текущую проблему конечно решило, но вопрос почему sql сервер похоже не считал это взаимоблокировокой и не убирал, хотя они именно что блокировали выполнение друг друга, остаётся открытым.

ВПотому что в вашем примере нет взаимоблокировок, что вам и пытаются объяснить.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805370
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AndrF
Потому что в вашем примере нет взаимоблокировок, что вам и пытаются объяснить.[/quot]

Пардон, увидел таки 58-59
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805394
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF,

это не взаимоблокировки, это конкуренция. Т.е. они по страничке между собой перебирают, мелкими шажками. Работает это медленно, много простоев, и кажется, что зависло.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805395
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там то ли куча, то ли нет нужного индекса.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805401
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовэто не взаимоблокировки, это конкуренцияЗабавная такая конкуренция: обе сессии в состоянии suspended и блокируют друг-друга.
Может объясните чем такая конкуренция отличается от взаимоблокировки?
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805413
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поддерживаю invm.

На таблице РК + не кластерные индексы.

Для данного запроса пожалуй не самые оптимальные, но обычно нормально отрабатывают.
По плану селект делает через Key Lookup (99% стоимости) + Index seek, дальше nested loops и последующая обработка.

Запрос выполняется меньше секунды, тогда висело и 30+ минут. Такая конкуренция по результату от дедлока не отличается, только сервер сам не решает проблему.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805416
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

эскалация отключена?
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805436
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

Флаги 1211, 1224 на этом сервер выключены. Скорее всего укрупнение включено.

Можно включать\выключать с помощью для таблицы
ALTER TABLE SET (LOCK_ESCALATION = DISABLE)
Но что-то не понял, где текущий статус пишет.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805438
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionTaPaK,

Флаги 1211, 1224 на этом сервер выключены. Скорее всего укрупнение включено.

Можно включать\выключать с помощью для таблицы
ALTER TABLE SET (LOCK_ESCALATION = DISABLE)
Но что-то не понял, где текущий статус пишет.
а не гадать?
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805440
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

На уровне сервера включено.
Для проверки на уровне таблицы просьба подсказать как проверить.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805444
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

Скрипт создания таблицы
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805448
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

Спасибо за ответ.
На таблице тоже включено. При этом на проде включен флаг 1224, подобной проблемы не встречал, хотя на тесте кроме этих двух запросов тоже подобного нет.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805461
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

Чтобы делать какие-то осмысленные предположения нужно видеть wait_type и wait_resource взаимнозаблокированных сессий.
Но вы предпочитаете эти сведения держать в секрете.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805476
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Выше в теме всё есть.
21869655
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805491
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danioninvm,

Выше в теме всё есть.
21869655 Ничего там нет. Надо смотреть в sys.dm_os_waiting_tasks для обеих сессий.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805493
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

А чем не устраивают поля last_wait_type, wait_resource из sys.dm_exec_requests?

Сейчас то проблемы больше нет и смотреть не на что больше.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805496
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionВыше в теме всё есть.Каким запросом получен этот результат?
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805497
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionА чем не устраивают поля last_wait_type, wait_resource из sys.dm_exec_requests?Нужно wait_type, а не last_wait_type.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805499
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,
На скриншоте оставил
select session_id, wait_resource, last_wait_type from sys.dm_exec_requests
Смотрел сначала просто через *, у обоих столбцов значение для сессий было одинаковым.
Через sp_who выглядело: селект в несколько потоков и один из них поймал блокировку от апдейт. Апдейт в один поток блокирован сессий селекта.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805502
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danionselect session_id, wait_resource, last_wait_type from sys.dm_exec_requests 21870014
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805506
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionГавриленко Сергей Алексеевич,

А чем не устраивают поля last_wait_type, wait_resource из sys.dm_exec_requests?

Сейчас то проблемы больше нет и смотреть не на что больше.cxpacket'ом не устраивает

На сохранившемся скриншоте с прошлого подобного случая видно, что по sys.dm_exec_requests вроде как и нет дедлока, а если в sys.dm_os_waiting_tasks глянуть, то есть.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805507
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, сейчас проблема решена, смотреть больше не на что. Всем спасибо.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805508
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, проблема лечится спиливанием параллелизма.
...
Рейтинг: 0 / 0
Не отстреливает дедлоки
    #39805511
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

Хорошо, если опять будет похожая проблема, то понял что смотреть.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не отстреливает дедлоки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]