Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Столкнулся с такой проблемой: Есть запрос который делает большой и долгий SELECT из таблицы N есть запрос который делает UPDATE или INSERT в эту же таблицу. Если запустить SELECT а потом UPDATE то возникает Deadlock с таким вот графом при этом SELECT выполняется с READ UNCOMMITED Не могу понять в чем причина(
27 мар 14, 11:41    [15793576]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Не прикрепился скрин(

К сообщению приложен файл. Размер - 22Kb
27 мар 14, 11:44    [15793601]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
Не прикрепился скрин

Это разве Deadlock Graph Event из Профайлера ?
27 мар 14, 12:07    [15793801]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Он самый
27 мар 14, 12:13    [15793832]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
invm
Member

Откуда: Москва
Сообщений: 9404
Покажите граф в виде текста или xml. Или xdl-файл приложите.
27 мар 14, 12:23    [15793937]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
invm
Покажите граф в виде текста или xml. Или xdl-файл приложите.


К сообщению приложен файл (Deadlock.xdl - 15Kb) cкачать
27 мар 14, 12:27    [15793967]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
У вас там блокировки и запросы на Sch-M. А это schema modification, т.е. какие-то ALTER-ы
27 мар 14, 12:33    [15794004]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Glory
У вас там блокировки и запросы на Sch-M. А это schema modification, т.е. какие-то ALTER-ы

Единственный Alter включение отключение триггеров но как это мешает селекту?
27 мар 14, 12:46    [15794115]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
Единственный Alter включение отключение триггеров

Значит ваш скрипт содержит больше команд, чем вы сказали в начале темы ?

Andrey-i
как это мешает селекту?

селекту это как раз не мешает
27 мар 14, 12:50    [15794146]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Glory
Andrey-i
Единственный Alter включение отключение триггеров

Значит ваш скрипт содержит больше команд, чем вы сказали в начале темы ?

Andrey-i
как это мешает селекту?

селекту это как раз не мешает


Команд на много больше но все они на SELECT а у другого на UPDATE или INSERT (или и то и другое) но откатывается почему то SELECT хотя по идее ничего не должно мешать
27 мар 14, 12:52    [15794165]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
Команд на много больше но все они на SELECT а у другого на UPDATE или INSERT (или и то и другое)

Не понял, а "ALTER триггера" тогда где ?


Andrey-i
но откатывается почему то SELECT хотя по идее ничего не должно мешать

Потому что он выбирается в качестве жертвы
27 мар 14, 12:55    [15794180]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Glory
Andrey-i
Команд на много больше но все они на SELECT а у другого на UPDATE или INSERT (или и то и другое)

Не понял, а "ALTER триггера" тогда где ?


Andrey-i
но откатывается почему то SELECT хотя по идее ничего не должно мешать

Потому что он выбирается в качестве жертвы

Alter триггера выключаются перед UPDATE или INSERT потом опять включаются
27 мар 14, 13:03    [15794243]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
aleks2
Guest
Andrey-i
Glory
У вас там блокировки и запросы на Sch-M. А это schema modification, т.е. какие-то ALTER-ы

Единственный Alter включение отключение триггеров но как это мешает селекту?


Откуда ж бедному серверу знать, что ваш ALTER "ничо такого" не делает?
ALTER => надо блокировку Sсh-M.

Разучите менее накладные способы отключения триггера.
27 мар 14, 13:04    [15794250]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
Alter триггера выключаются перед UPDATE или INSERT потом опять включаются

Если вы выполняете _множество_ команд в одной транзакции, т о почему рассказываете только о последней ?
27 мар 14, 13:11    [15794315]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Glory
Andrey-i
Alter триггера выключаются перед UPDATE или INSERT потом опять включаются

Если вы выполняете _множество_ команд в одной транзакции, т о почему рассказываете только о последней ?


Спасибо большое я в принципе понял проблему но как теперь отключить триггер без ALTERа разве есть решение?
27 мар 14, 13:12    [15794323]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
Спасибо большое я в принципе понял проблему но как теперь отключить триггер без ALTERа разве есть решение?

Почему вы выполняете ALTER в явной транзакции ?
27 мар 14, 13:13    [15794329]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Glory
Andrey-i
Спасибо большое я в принципе понял проблему но как теперь отключить триггер без ALTERа разве есть решение?

Почему вы выполняете ALTER в явной транзакции ?


Эта транзакция не явная! Явная транзакция на SELECT
27 мар 14, 13:15    [15794345]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
Эта транзакция не явная! Явная транзакция на SELECT

Явная транзакция на "SELECT выполняется с READ UNCOMMITED" ??? Господи Иисусе !
27 мар 14, 13:17    [15794370]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Glory
Andrey-i
Эта транзакция не явная! Явная транзакция на SELECT

Явная транзакция на "SELECT выполняется с READ UNCOMMITED" ??? Господи Иисусе !

Да и я знаю все последствия просто этот select выполняется иногда даже по 5 минут а мне нужно чтобы весь остальной функционал работал в это время
27 мар 14, 13:19    [15794386]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Закомментил отключение триггеров все сработало( Можно ли как то обойти триггеры без ALTER или придется переписывать?
27 мар 14, 13:42    [15794552]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
invm
Member

Откуда: Москва
Сообщений: 9404
Зачем в читающей транзакции отключать триггеры?
27 мар 14, 13:50    [15794620]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
invm
Зачем в читающей транзакции отключать триггеры?

Триггеры отключаются не в читающей а в UPDATE
27 мар 14, 13:51    [15794627]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
Закомментил отключение триггеров все сработало

А теперь объясните, как ALTER TRIGGER мог вообще выполняться ?
Ведь любой запрос селект все равно накладывает блокировку Sch-S, которая конфликтует с Sch-М
27 мар 14, 13:52    [15794630]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Andrey-i
Member

Откуда:
Сообщений: 17
Glory
Andrey-i
Закомментил отключение триггеров все сработало

А теперь объясните, как ALTER TRIGGER мог вообще выполняться ?
Ведь любой запрос селект все равно накладывает блокировку Sch-S, которая конфликтует с Sch-М

На графе же видно он откатывал SELECT и выполнялся
27 мар 14, 13:54    [15794651]     Ответить | Цитировать Сообщить модератору
 Re: Deadlock без ресурсов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey-i
На графе же видно он откатывал SELECT и выполнялся

Мда. Вы по-моему, не понимаете разницы между взаимоблокировкой и блокировкой.
Если Sch-S уже имеется, то никакой запрос на Sch-М не может ничего "откатить". Этот запрос будет ждать освобождения ресурса. И наоборот.

Из из графе не видно, сколько и каких команд было выполнено в каждом коннекте. И какие блокировки уже существовали на момент начала последных команд
27 мар 14, 13:59    [15794699]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить