|
|
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
Процедура убивается по deadlock victim, как отследить в каком именно месте это происходит? Код перелопатил весь, либо чего-то не понимаю либо одно из двух. Процедура запускается в job'е. Мог бы по её неудачному завершению что-нибудь сделать, но не знаю что. Помогите!!! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 15:24:42 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
Грубо - в процедуре сразу открыть транзакцию и явно заблокировать все используемые таблицы в том же порядке, что и в конкурирующих процессах. Типа: declare @ForLock int select @ForLock=1 from tabl1 (TABLOCK) where (1=2) select @ForLock=1 from tabl2 (TABLOCK) where (1=2) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 16:13:53 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
Можно отловить в Profiler'е. Можно в ErrorLog'е SQL Server'а при помощи trace flag'а 1204. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 16:21:06 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
2(VAT) Сорри, я не до конца описал ситуацию: Процедура читает данные из очень активно используемой базы (1C'ная она), читает везде с nolock. Локирует по идее только свои собственные служебные таблицы, которые никто кроме неё и не трогает. Вот поэтому я и не понимаю, как она может по deadlock victim валится. 2(jimmers) В профайлере не вариант, т.к. она падает 2-3 в день, а профайлер очень сильно тормозить сервер будет. А вот про errorlog попробую, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 16:51:35 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
Журналы тоже будут большие, не обольщайтесь. Команду все знают, конечно, но на всякий случай: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 17:02:01 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
А 3605 что такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 18:26:32 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
Всё равно и "свои" таблицы не мешает сразу заблокировать. Может, что и проявится. А SQL = MSSQL2000? Что-то давно припоминаю, что ЕМ кажется, при запуске Current Activity, сцеплялся на какой-то версии во временной базе с чужими таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2002, 18:37:55 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
2(jimmers) Огромное спасибо - нашёл касяк. 2(VAT) Тоже большущее спасибо - твоим способом и исправил касяк :-) SQL=2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2002, 10:19:03 |
|
||
|
Процедура убивается по deadlock, как отследить в каком месте это происходит?
|
|||
|---|---|---|---|
|
#18+
2(Long ) у нас похожая ситуация с базой... есть вопросы, можно ли написать на ваш мэйл или пообщаться по аське ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2002, 11:10:30 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32072366&tid=1818504]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 352ms |

| 0 / 0 |
