Size: a a a

2020 December 08

Y

Yuriy T in sql_ninja
Это же классический key lookup deadlock, но может быть и update.

Смысл в том, что действительно строка одна. Но две сессии всё равно должны обращаться к разным ресурсам этой строки, одна делает апдэйт кластерного индекса и потом бежит обновить некластерный, а вторая наоборот сначала индекс сик по некластреному( главное чтобы транзакция была с  S блокировкой), а потом лукап по некластреному. Вот и дедлок.
источник

O

Oleg T in sql_ninja
Yuriy T
А если я всё же дам пример где дедлок происходит из-за одной ЗАПИСИ (строки) )??
Пришлите мне такой граф и я переведу вам косарь без тени сожаления
источник

O

Oleg T in sql_ninja
Yuriy T
Это же классический key lookup deadlock, но может быть и update.

Смысл в том, что действительно строка одна. Но две сессии всё равно должны обращаться к разным ресурсам этой строки, одна делает апдэйт кластерного индекса и потом бежит обновить некластерный, а вторая наоборот сначала индекс сик по некластреному( главное чтобы транзакция была с  S блокировкой), а потом лукап по некластреному. Вот и дедлок.
Такое действительно возможно, стыжусь, что не подумал об этом сам. Ради проформы, воспроизведите и сочтемся
источник

Y

Yuriy T in sql_ninja
Oleg T
Пришлите мне такой граф и я переведу вам косарь без тени сожаления
Я конечно с таким не сталкивался, максимум могу сослаться на литературу, там подробно описан пример
источник

Y

Yuriy T in sql_ninja
Не, ну так то воспроизвести можно)
источник

Y

Yuriy T in sql_ninja
Если время будет то пришлю)
источник

O

Oleg T in sql_ninja
Азарт будет утерян без эксперимента😉 мне не жаль денег, лишь хочу доиграть партию до конца.
источник

Y

Yuriy T in sql_ninja
Дело принципа, ща тогда забабахаю)
источник

O

Oleg T in sql_ninja
Ааатлично, вот это я люблю
источник

DI

Dmitriy Ivanov in sql_ninja
источник

O

Oleg T in sql_ninja
Спасибо, это все хорошо и понятно. Но каков бы был отвал елды, если бы товарищ, не раскрыв сути, просто выдал бы сюда граф дедлока. Вот я бы удивился и порадовался за товарища... Эх.. ну ничего, и так сойдет😉
источник

Y

Yuriy T in sql_ninja
Собственно готово, повторить по примеру не сложно. Код + фото кину сейчас, про граф понимаю что это, но с extend events пока не работал.
источник

Y

Yuriy T in sql_ninja
источник

Y

Yuriy T in sql_ninja
источник

Y

Yuriy T in sql_ninja
источник

Y

Yuriy T in sql_ninja
источник

ᏃᏞᎪᎽᎬᏒ in sql_ninja
источник

ᏃᏞᎪᎽᎬᏒ in sql_ninja
Просто подсажите. Мой запрос соответсвует условию или нет ?
источник

ᏃᏞᎪᎽᎬᏒ in sql_ninja
У меня нет значений и я не знаю, валидный ли он или нет
источник

ДT

Дмитрий Texnix... in sql_ninja
ну а как обходить этот дедлок?
источник