Использование SQL Server 2005: у меня есть таблица с внешним ключом, ссылающимся на себя.
Взаимная блокировка возникает, когда обновление и вставка в эту таблицу происходят одновременно, но только при следующих условиях:
- обновление происходит 1-го
- обновление относится к записи, на которую будет ссылаться внешний ключ оператора вставки
Во время обновления блокировка X создается для первичного ключа, который является кластеризованным индексом таблицы. Я пробовал несколько вещей, чтобы попытаться предотвратить это, например:
- Я пытался изменить уровни изоляции транзакций
- предоставление табличных подсказок, т.е. WITH(nolock)
- Я попытался создать некластеризованный индекс для первичного ключа таблицы, чтобы его можно было использовать вместо кластеризованного.
Внешний ключ должен быть там, поэтому его удаление не вариант. Любые предложения о том, как я могу либо предотвратить блокировку, которая останавливает вставку, либо позволить вставке обойти блокировку, были бы очень полезны.
Спасибо.
1205
) или ожидание блокировки? - person Quassnoi   schedule 05.05.2011