Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Deadlocks  [new]
anonim1987
Member

Откуда:
Сообщений: 15
Добрый день,
Есть два запроса:
delete from Document where docfolderid in (14234)
и
select max(dr.objectid) from DocumentRetention dr inner join Document on dr.objectid=d.documentid where cutoffdate is not null

Они периодически вызывают дедлоки на MS SQL Server
Что с этим можно поделать? в смысле можно ли обойтись малой кровью просто как-то переписав эти запросы, не изменяя логики приложения?

Заранее спасибо!

P.S.:Запросы должны выполняться и на MS SQL Server и на Oracle
1 ноя 12, 21:31    [13411167]     Ответить | Цитировать Сообщить модератору
 Re: Deadlocks  [new]
Crimean
Member

Откуда:
Сообщений: 13147
версия MS SQL?
1 ноя 12, 21:32    [13411168]     Ответить | Цитировать Сообщить модератору
 Re: Deadlocks  [new]
anonim1987
Member

Откуда:
Сообщений: 15
MS SQL Server 2008, 2008R2, 2012
1 ноя 12, 21:33    [13411170]     Ответить | Цитировать Сообщить модератору
 Re: Deadlocks  [new]
anonim1987
Member

Откуда:
Сообщений: 15
В аттаче скриншоты из SQL профайлера

К сообщению приложен файл. Размер - 75Kb
1 ноя 12, 21:47    [13411210]     Ответить | Цитировать Сообщить модератору
 Re: Deadlocks  [new]
Crimean
Member

Откуда:
Сообщений: 13147
самое банальное - базе включить RCSI
1 ноя 12, 22:39    [13411361]     Ответить | Цитировать Сообщить модератору
 Re: Deadlocks  [new]
Glory
Member

Откуда:
Сообщений: 104751
Разный порядок наложения блокировок. Имхо
Наверное потому, что таблицы связаны FK с каскадными действиями ?
1 ноя 12, 22:47    [13411391]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить