Re: многопоточность и deadlock в mssql2000
От: Андрийко Украина  
Дата: 04.05.06 04:49
Оценка:
Здравствуйте, lumf, Вы писали:

L>тема достаточно избитая, но все же...


L>имеется куча потоков, которая вызывает одну и туже хранимку, которая там что-то сложное делает с базой.


L>вопрос 1: если бы в хранимке была лишь одна инструкция insert возник бы dead lock?

врядли возникнет

L>вопрос 2: если бы в хранимке была лишь одна инструкция update(причем каждый поток апдейтит уникальную запись) возник бы dead lock?

мало вероятно для одной записи, хотя все зависит от наличие индексов и условия апдейта.

L>вопрос 3: как наилучшим образом бороться, чтобы не растерять алюсы многопоточности? у меня два выхода: 1- блокировать mutex'om момент вызова процедуры; 2-ловить вот это

L>Transaction (Process ID 140) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
L>

L>и делать то что говорится, то бишь Rerun the transaction

почитай здесь
Автор(ы): Алексей Ширшов
Дата: 15.11.2003
В статье рассказывается о уровнях изоляции транзакций и механизме блокировок, обеспечивающем поддержку этих уровней в СУБД MS SQL Server 2000. Предполагается, что читатель хорошо знаком с транзакциями и их свойствами.
и особенно здесь
Автор(ы): Иван Бодягин
Дата: 05.05.2004
В статье рассматривается проблема взаимоблокировок, даются примеры успешного создания подобных ситуаций, а также их разрешения. Материал разбирается на примере MS SQLServer 2000.



Удачи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.