Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура убивается по deadlock, как отследить в каком месте это происходит? / 10 сообщений из 10, страница 1 из 1
25.11.2002, 15:24:42
    #32072024
Long
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
Процедура убивается по deadlock victim, как отследить в каком именно месте это происходит?
Код перелопатил весь, либо чего-то не понимаю либо одно из двух. Процедура запускается в job'е. Мог бы по её неудачному завершению что-нибудь сделать, но не знаю что.
Помогите!!! :-)
...
Рейтинг: 0 / 0
25.11.2002, 16:13:53
    #32072063
VAT
VAT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
Грубо - в процедуре сразу открыть транзакцию и явно заблокировать все используемые таблицы в том же порядке, что и в конкурирующих процессах. Типа:
declare @ForLock int
select @ForLock=1 from tabl1 (TABLOCK) where (1=2)
select @ForLock=1 from tabl2 (TABLOCK) where (1=2)
...
...
Рейтинг: 0 / 0
25.11.2002, 16:21:06
    #32072073
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
Можно отловить в Profiler'е.
Можно в ErrorLog'е SQL Server'а при помощи trace flag'а 1204.
...
Рейтинг: 0 / 0
25.11.2002, 16:51:35
    #32072099
Long
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
2(VAT) Сорри, я не до конца описал ситуацию:
Процедура читает данные из очень активно используемой базы (1C'ная она), читает везде с nolock. Локирует по идее только свои собственные служебные таблицы, которые никто кроме неё и не трогает. Вот поэтому я и не понимаю, как она может по deadlock victim валится.
2(jimmers) В профайлере не вариант, т.к. она падает 2-3 в день, а профайлер очень сильно тормозить сервер будет.
А вот про errorlog попробую, спасибо.
...
Рейтинг: 0 / 0
25.11.2002, 17:02:01
    #32072114
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
Журналы тоже будут большие, не обольщайтесь.
Команду все знают, конечно, но на всякий случай:

Код: plaintext
DBCC TRACEON( 1204 , 3605 ,- 1 )
...
Рейтинг: 0 / 0
25.11.2002, 18:26:32
    #32072189
Long
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
А 3605 что такое?
...
Рейтинг: 0 / 0
25.11.2002, 18:37:55
    #32072193
VAT
VAT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
Всё равно и "свои" таблицы не мешает сразу заблокировать. Может, что и проявится.
А SQL = MSSQL2000? Что-то давно припоминаю, что ЕМ кажется, при запуске Current Activity, сцеплялся на какой-то версии во временной базе с чужими таблицами.
...
Рейтинг: 0 / 0
26.11.2002, 10:19:03
    #32072366
Long
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
2(jimmers) Огромное спасибо - нашёл касяк.
2(VAT) Тоже большущее спасибо - твоим способом и исправил касяк :-)
SQL=2000
...
Рейтинг: 0 / 0
26.11.2002, 11:10:30
    #32072411
nik_rom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
2(Long )
у нас похожая ситуация с базой... есть вопросы, можно ли написать на ваш мэйл или пообщаться по аське ?
...
Рейтинг: 0 / 0
26.11.2002, 12:07:27
    #32072450
Long
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура убивается по deadlock, как отследить в каком месте это происходит?
2(nik_rom) ICQ: 40926487
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура убивается по deadlock, как отследить в каком месте это происходит? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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