Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 вперед Ctrl→ все |
Cammomile Member Откуда: Сообщений: 1214 |
Так у ТС блокировка из-за параллелизма или нет? Если да, спасает ли максдоп 1? |
9 ноя 17, 16:50 [20940761] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
какой еще параллелизм, вы видите какие-то ResType:ExchangeId? вы читаете ли обычный текст или только жирненьким?
<resource-list> <keylock hobtid="72057594056081408" dbid="31" objectname="orwellv4_10.dbo.tbCompositions" indexname="PK_Composition" id="lock39430bd00" mode="U" associatedObjectId="72057594056081408"> <owner-list> <owner id="process3bf302ca8" mode="S"/> </owner-list> <waiter-list> <waiter id="process3d6f644e8" mode="X" requestType="convert"/> </waiter-list> </keylock> <TransactionMutex> <TransactionInfo Workspace="16686586896"/> <owner-list> <owner id="process3d6f644e8"/> </owner-list> <waiter-list> <waiter id="process3bf302ca8"/> </waiter-list> </TransactionMutex> </resource-list> |
||||||
9 ноя 17, 17:10 [20940848] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Молодой, Ладно, раз никто не хочет. У Вас -на мой взгляд - классическая FOREIGN KEY DEADLOCKS. Вы начинаете update, на строку ложится блокировка, далее из-за триггера Вы входите в эксклюзивную блокировку, потому что update еще и на поле, которое содержит внешний ключ. И всё. Вот у Вас FOREIGN KEY. ALTER TABLE [dbo].[tbCompositions] WITH CHECK ADD CONSTRAINT [FK_Composition_Servers] FOREIGN KEY([ServerGUID]) REFERENCES [dbo].[tbServers] ([ServerGUID]) А вот у Вас внутри триггера UPDATE c SET c.ServerGUID = srv.ServerGUID FROM [dbo].[tbCompositions] c |
9 ноя 17, 17:52 [20940991] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Andy_OLAP, а лечить это TABLOCKX 20939816? Вы вообще читаете о чём спрашивают и открываете то что советуете? |
9 ноя 17, 18:11 [20941036] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
Рекомендую таки заглянуть. А потом, до полного просветления в голове, изучать статью SQL Server Transaction Locking and Row Versioning Guide, раздел "Deadlocking", подраздел "Resources That Can Deadlock", последний пункт "Multiple Active Result Sets (MARS) resources" |
||
9 ноя 17, 18:22 [20941057] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1692 |
Andy_OLAP, брызгать слюной не буду, даже если не смотреть граф Ваше предположение ошибочно. просто посмотрите внимательней на триггер и поймите что он тут не причем. |
9 ноя 17, 18:27 [20941068] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Я читаю не только то, о чем спрашивают сразу, но и то, о чем спросят потом. А автор темы уже принял решение "Пока попробуем триггер в тестах удалить" - давайте дождемся результатов.
|
|||
9 ноя 17, 18:30 [20941073] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Недавно был тут коллега, изучал проблему со своим приложением и работой MARS. Я вот не помню, чтобы Вы в первых рядах рвались ему помочь. Но ведь если такой вопрос еще возникнет - Вам будет нетрудно эту самую ссылку кинуть вопрошающему? Я Вас таки очень прошу. Спасибо. |
||
9 ноя 17, 18:33 [20941078] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Молодой, Коллега, вот Вам хорошая статья про дедлоки от Ашока Кумара. |
9 ноя 17, 18:39 [20941096] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
вот видите. он не только лечит геморрой по фотографии, но и заглядывает в будущее. сжальтесь же над экспертом. предлагаю покинуть эту тему, а заодно и следующие, где он вывалит тучу интересного, не имеющего ни малейшей связи с происходящим. в конце концов, сколько же можно опровергать фигню, если каждое опровержение только провоцирует выплеск очередных фантазий с удвоенной силой? |
||
9 ноя 17, 18:40 [20941102] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Коллега, я хочу подсказать Вам, как искать в гугле подобные ошибки. Вбиваете в поиске "TransactionMutex MARS foreign key". И получаете второй ссылкой по очереди хорошую статью. |
||||
9 ноя 17, 18:53 [20941128] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1692 |
Andy_OLAP, Да только это первая ссылка по гуглозапросу transaction mutex и в этой статье нет ни одного упоминания о foreign key :) а так можете гуглить дальше, глядишь и TF666 отыщите |
9 ноя 17, 18:56 [20941136] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
|
|||
9 ноя 17, 19:01 [20941148] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1692 |
Andy_OLAP,
|
|
9 ноя 17, 19:07 [20941162] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
|
||||
9 ноя 17, 19:17 [20941187] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1692 |
|
|
9 ноя 17, 19:56 [20941278] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
|
||||
9 ноя 17, 22:05 [20941557] Ответить | Цитировать Сообщить модератору |
Молодой Member Откуда: Москва Сообщений: 180 |
Извините, что временно пропал - нагрузочные тесты можем пускать только в ночь, а выстреливает этот дидлок раз в несколько часов. натестили пока немного по времени и с двумя таблетками сразу: 1) USE DB GO EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE WITH OVERRIDE; GO EXEC sp_configure 'max degree of parallelism', 1; GO RECONFIGURE WITH OVERRIDE; GO 2) Удалили триггер Пока Deadlock не словили - оставим тесты на выходные, если Deadlock не выстрелит - будем уже определять какая из таблеток помогла. |
10 ноя 17, 16:38 [20944326] Ответить | Цитировать Сообщить модератору |
Молодой Member Откуда: Москва Сообщений: 180 |
В итоге: Отключение параллельного выполнения и полное удаление триггера - не помогло. Тот же дидлок словили в выходные - во вложении. Будем как то переписывать запрос. К сообщению приложен файл (Deadlock_3_SP2.xdl - 6Kb) cкачать ![]() |
13 ноя 17, 12:02 [20948738] Ответить | Цитировать Сообщить модератору |
Молодой Member Откуда: Москва Сообщений: 180 |
Тут еще одна "мелочь" всплыла )) Включен аудит изменения таблицы... Попробуем: ALTER TABLE [dbo].[tbCompositions] DISABLE CHANGE_TRACKING |
13 ноя 17, 12:33 [20948874] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
неожиданно, да? зато параллельность на сервер прибили, это славно. --- кстати, следующими предложениями от Andy_OLAP будут убитие FK + включение всех флагов подряд. --- вам этот MARS точно нужен? |
13 ноя 17, 12:36 [20948887] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
о, да вы достойный последователь нашего писателя-эксперта. не буду вам мешать в дальнейшей деятельность по отключению всего, что под руку попадет |
||
13 ноя 17, 12:38 [20948895] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Могу лишь посоветовать прочитать ссылку про то, что Microsoft ответила на прямой вопрос, что не гарантирует насчет condition, если столбец Identity есть (CompositionID), но он не PRIMARY KEY, а PRIMARY KEY другой столбец (CompositionGUID). |
||
13 ноя 17, 12:42 [20948911] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
Молодой, Коллега, я вот не видел ни разу в своей практике, чтобы столбец Identity(1,1) при этом не был явно PRIMARY KEY. Вам точно нужно на другой столбец такое? |
13 ноя 17, 12:45 [20948931] Ответить | Цитировать Сообщить модератору |
Молодой Member Откуда: Москва Сообщений: 180 |
Все проверяем на тестовом SQL сервере. Параллельность прибили - ни кто не пострадал. Клиент же не шлет никаких криминальных запросов. C MARS просто более долгая история, с тем как исправления вносить и разбираться на сколько он нужен на клиентской части. Поэкспериментируем пока на SQL что можем, потом с клиентом будем разбираться. |
||
13 ноя 17, 12:46 [20948940] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |