Помогите с дедлоком
От: Tom Россия http://www.RSDN.ru
Дата: 23.10.06 08:47
Оценка:
В общем есть SQL2005, есть тяжёлая транзакция, уровень изоляции READ COMMITED, воспроизвёл дедлок, получил граф(ы).

первый


второй


Как видно из графов, на индексах 2-х таблиц висят S блокировки, и вот это мне абсолютно непонятно ведь уровень изоляции READ COMMITED.
И как бы ещё узнать, каким именно STATEMENT-ом была установлена S юлокировка...

В общем посоветуйте куда копать дальше, что бы победить это дело.

Спасибо!
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re: Помогите с дедлоком
От: IB Австрия http://rsdn.ru
Дата: 23.10.06 09:43
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Как видно из графов, на индексах 2-х таблиц висят S блокировки, и вот это мне абсолютно непонятно ведь уровень изоляции READ COMMITED.

А кто сказал, что при Read Committed S блокировки не ставятся?

Tom>И как бы ещё узнать, каким именно STATEMENT-ом была установлена S юлокировка...

DBCC TRACEON(1204, 3406, -1)
... << RSDN@Home 1.2.0 alpha rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[2]: Помогите с дедлоком
От: Tom Россия http://www.RSDN.ru
Дата: 23.10.06 09:49
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, Tom, Вы писали:


Tom>>Как видно из графов, на индексах 2-х таблиц висят S блокировки, и вот это мне абсолютно непонятно ведь уровень изоляции READ COMMITED.

IB>А кто сказал, что при Read Committed S блокировки не ставятся?

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


Как я понимаю у меня блокировка S после окончания чтения не снимается, я не прав?

Tom>>И как бы ещё узнать, каким именно STATEMENT-ом была установлена S юлокировка...

IB>DBCC TRACEON(1204, 3406, -1)

Правильно ли я понимаю, что я должен выполнить эту команду в Management Studio а потом запустить профайлер?
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re[3]: Помогите с дедлоком
От: IB Австрия http://rsdn.ru
Дата: 23.10.06 11:34
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>Как я понимаю у меня блокировка S после окончания чтения не снимается, я не прав?

Нет, она у тебя ставится в тот момент, когда на ресурсе уже есть X блокировка и естественно ничего из этого не получается.

Tom>Правильно ли я понимаю, что я должен выполнить эту команду в Management Studio а потом запустить профайлер?

Нет, выполнить эту команду в Management Studio и ждать дедлока, потом смотреть в лог сиквела.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Мы уже победили, просто это еще не так заметно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.