Как найти причину Deadlock в MS SQL
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Как найти причину Deadlock в MS SQL
Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
Re: Как найти причину Deadlock в MS SQL
надеюсь ВСЕ переписали с нуля?Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
![Wink :wink:](./images/smilies/wink.gif)
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: Как найти причину Deadlock в MS SQL
Для меня - DBA DB2 for zOS - звучит как дикость какая то. Я не могу себе близко представить такого. По всем дедлокам в DB2 я узнаю элементарным просмотром сообщений DB2 в системном журнале (пример сообщения я приводил выше в этой теме), или обработкой записей в трассировке которую невозможно отключить. Кроме того поведение DB2 в отношении дедлоков никакими конфигурациями изменить не возможно, кроме необязательного таймаута, который по умолчанию 5 секунд и который существует для того чтобы программы имеющее встроенную обработку дедлоков с повторением запросов не слишком быстро повторялись и возможно снова попадали в дедлок.Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
Я специально распрашивал нашего MSSQL DBA о работе с дедлоками. Получалось что все так же как и в DB2, но читая такого рода сообщения я, уже не в первый раз прихожу к заключения что "также" не всегда на самом деле так.
P.S. Да и само название этой темы мои подозрения (на самом деле это уже давно не подозрения, а уверенность) подтверждают. А именно, нет такой проблемы: поиск причин дедлоков, потому что это уровень элементарной диагностики, которая просто должна быть без специальных танцев с бабнами. А вот проблема написания программ без опасности создания ситуаций с дедлоками в процессе их выполнения действительно существует. Выше я описал несколько способов, но вряд ли хоть кто-нибудь всерьез здесь это воспринял судя по всему. Учить этому надо с первого класса программирования для манагеров ресурсов совместного доступа с использованием замков. Но видимо этому не учат коль скоро проблема дедлоков спустя десятки лет появления первых таких манагеров до сих пор актуальна.
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: Как найти причину Deadlock в MS SQL
Вы уже второй раз на этой странице темы "навели тень на плетень" на "сам" MS SQL (RDBMS), который, конечно, тоже программа, но по идее пишется и тестируется (да и приемы написания там другие должны быть) иначе чем большенство поделушек массовых бизнес приложений.Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
Не могли Вы (не только для меня, я уверен) насколько можно детальней описан Ваши находки и понимание того что ж там было не так и почему? Вы говорите "причина была в неверной конфигурации". Что за конфигурация, как она могла вызвать дедлок? Это реально интересно.
Спасибо.
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: Как найти причину Deadlock в MS SQL
Судя по всему поправили конфигурацию. Какую только не ясно, но может Сабина прольет свет. Давайте все вместе ее попросим об этом.ie wrote: 09 Nov 2017 21:56надеюсь ВСЕ переписали с нуля?Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации![]()
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Как найти причину Deadlock в MS SQL
Это было 4 года назад, смеетесь что ли
![Smile :)](./images/smilies/icon_smile.gif)
Одно знаю что до меня никто и не знал про этот эксепшен и собственно проблему. Просто наблюдали что "почему то тут медленно очень".
Но я как обычно влезу и как сделаю что нибудь нетрадиционное
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
https://www.youtube.com/watch?v=wOwblaKmyVw