Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Откуда столько дедлоков? / 20 сообщений из 20, страница 1 из 1
22.10.2018, 17:15
    #39721034
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
есть ХП

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE PROCEDURE [dbo].[GetSession]
	@emp_login VARCHAR(256)
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @sid VARBINARY(85) = SUSER_SID(@emp_login)
	SET @emp_id = (SELECT TOP(1) elgn_emp FROM EmpLogins (NOLOCK) WHERE elgn_sid = @sid)		
	UPDATE Employee SET emp_logon = GETDATE() WHERE emp_id = @emp_id
	...



падает по таймауту
кильнул 194 процесс, заработало, см скрин
возникает вопрос, откуда столько дедлоков? куда смотреть?
...
Рейтинг: 0 / 0
22.10.2018, 17:19
    #39721038
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoview,

блокировка и дедлок это как бы не одно и тоже
...
Рейтинг: 0 / 0
22.10.2018, 17:19
    #39721039
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
TaPaKlisttoview,

блокировка и дедлок это как бы не одно и тоже
щет
...
Рейтинг: 0 / 0
22.10.2018, 17:21
    #39721043
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
а почиму они не снимаются?
т.е накладывается монопольная блокировка и другие запросы не выполняются?
...
Рейтинг: 0 / 0
22.10.2018, 17:22
    #39721044
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
сорри за ошибки, на нервах :)
...
Рейтинг: 0 / 0
22.10.2018, 17:25
    #39721050
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoview,

автора почиму они не снимаются?
отсюда не видно. Смотрите чего ждут, в вашем случае - чего ждала 194 сессия
...
Рейтинг: 0 / 0
23.10.2018, 10:10
    #39721271
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
Получается была монопольная блокировка на Employee
надо было посмотреть кто блокировал
блокировала та же сессия, ибо после килла заработало
но поздно уже, сейчас не посмотреть
...
Рейтинг: 0 / 0
23.10.2018, 10:19
    #39721275
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoview,

авторблокировала та же сессия, ибо после килла заработало
пациента пристрелили, ибо после смерти насморк прошёл... такая логика?
...
Рейтинг: 0 / 0
23.10.2018, 10:24
    #39721278
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
TaPaKlisttoview,

авторблокировала та же сессия, ибо после килла заработало
пациента пристрелили, ибо после смерти насморк прошёл... такая логика?
надо было смотреть что за запрос в 194
но сейчас поздно уже
...
Рейтинг: 0 / 0
23.10.2018, 10:30
    #39721285
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
TaPaKlisttoview,

авторблокировала та же сессия, ибо после килла заработало
пациента пристрелили, ибо после смерти насморк прошёл... такая логика?Бывает, если встаёт продакшен, приходиться восстанавливать работоспособность, ценой невозможности разобраться с багом.
listtoviewно поздно уже, сейчас не посмотретьПодготовте скрипт, который сохраняет участвующие в блокировке сессии, вместе с соотв. запросами.
Что бы, в случае чего, можно было потом разобраться.
...
Рейтинг: 0 / 0
23.10.2018, 10:35
    #39721290
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
alexeyvgTaPaKlisttoview,

пропущено...

пациента пристрелили, ибо после смерти насморк прошёл... такая логика?Бывает, если встаёт продакшен, приходиться восстанавливать работоспособность, ценой невозможности разобраться с багом.
listtoviewно поздно уже, сейчас не посмотретьПодготовте скрипт, который сохраняет участвующие в блокировке сессии, вместе с соотв. запросами.
Что бы, в случае чего, можно было потом разобраться.
посмотрю в отчете и dbcc inputbuffer(194)
...
Рейтинг: 0 / 0
23.10.2018, 10:36
    #39721291
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
alexeyvg,
авторБывает, если встаёт продакшен, приходиться восстанавливать работоспособность, ценой невозможности разобраться с багом.

я не про решение, я про логику вывода
...
Рейтинг: 0 / 0
23.10.2018, 10:54
    #39721301
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoviewalexeyvgПодготовте скрипт, который сохраняет участвующие в блокировке сессии, вместе с соотв. запросами.
Что бы, в случае чего, можно было потом разобраться.
посмотрю в отчете и dbcc inputbuffer(194)Попробуйте sp_WhoIsActive, покажет сами стейтменты, и другую полезную информацию. А с параметром @find_block_leaders покажет цепосчки блокировок.
Скачать можно отсюда .
Некоторое описание есть на Хабре
...
Рейтинг: 0 / 0
23.10.2018, 10:57
    #39721304
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoviewно сейчас поздно ужеВыяснить почему ваш UPDATE блокирует какую-то таблицу целиком никогда не поздно.
...
Рейтинг: 0 / 0
23.10.2018, 11:12
    #39721316
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
invmlisttoviewно сейчас поздно ужеВыяснить почему ваш UPDATE блокирует какую-то таблицу целиком никогда не поздно.
не он блокировал
а его блокировали
...
Рейтинг: 0 / 0
23.10.2018, 11:47
    #39721343
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoviewне он блокировал
а его блокировалиИз-за того, что хотел блокировать таблицу целиком и не смог.
Впрочем, искать и лечить проблему или нет - дело сугубо ваше.
...
Рейтинг: 0 / 0
23.10.2018, 13:53
    #39721444
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
invmlisttoviewне он блокировал
а его блокировалиИз-за того, что хотел блокировать таблицу целиком и не смог.
Впрочем, искать и лечить проблему или нет - дело сугубо ваше.
а, вы имели ввиду другой update
да не факт, может какой ниб ребилд индексов
у меня 2016 стандарт

ладно, всем спасибо, вопрос снят
...
Рейтинг: 0 / 0
23.10.2018, 14:09
    #39721455
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
опять то же самое

смотрю какой запрос блокирует
Код: sql
1.
dbcc inputbuffer(129)


вижу
Код: sql
1.
SELECT T1."call_id", T1."call_date", ...



а разве select умеет накладывать монопольную блокировку в read committed?
из 1C выполняется запрос
...
Рейтинг: 0 / 0
23.10.2018, 14:22
    #39721461
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoview,

читать про shared lock, а то у вас какая-то одна блокировка.
ну и или разбирайтесь почему пересекаются (или Update вообще всю таблицу ждёт) или RCSI
...
Рейтинг: 0 / 0
23.10.2018, 15:53
    #39721521
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда столько дедлоков?
listtoviewinvmпропущено...
Из-за того, что хотел блокировать таблицу целиком и не смог.
Впрочем, искать и лечить проблему или нет - дело сугубо ваше.
а, вы имели ввиду другой update
да не факт
...
он не имел в виду другой апдэйт.
он имел в виду именно ваш ,
желающий получить Х на всю таблицу целиком,
хотя ведь ему вся таблица не нужна,
лишь строки с данным конкретным emp_id
(у кого-то нет индекса по emp_id?)
---
и уж разумеется достаточно иметь любого читателя на таблице,
чтобы не суметь получить на нее эксклюзивную блокировку
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Откуда столько дедлоков? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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