Как найти причину Deadlock в MS SQL

iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Как найти причину Deadlock в MS SQL

Post by iDesperado »

да, но xml рендерится в сексуальные картинки, читать то xml никто не просит
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Как найти причину Deadlock в MS SQL

Post by alex_127 »

Я автор большого куска этого xml. Сам придумывал, никто пальцем не указывал - так что плюхи мне если что. Xml был введен в 2002 году, тогда слово json не слышали. С предыдушим текстовым было много проблем - тяжело натравливать тулзы на него было.
Кстати, ничего дополнительно включать не надо для сбора таких событий - https://blog.sqlauthority.com/2017/01/0 ... ed-events/

А что касается как с ними бороться - это трудно. Highest cost support cases in average...
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Как найти причину Deadlock в MS SQL

Post by Сабина »

zVlad wrote: 18 Oct 2017 19:22 Причина у deadlock одна, и устраняется она переписыванием программ.
:lol:

У MSSQL servera это проблема настолько чаще встречается, что в данном случае наверное только переписыванием самого движка. Что безусловно тоже программа :roll:
https://www.youtube.com/watch?v=wOwblaKmyVw
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Re: Как найти причину Deadlock в MS SQL

Post by zVlad »

Сабина wrote: 01 Nov 2017 17:30
zVlad wrote: 18 Oct 2017 19:22 Причина у deadlock одна, и устраняется она переписыванием программ.
:lol:

У MSSQL servera это проблема настолько чаще встречается, что в данном случае наверное только переписыванием самого движка. Что безусловно тоже программа :roll:
Движок переписать можно было бы конечно, но причину deadlock переписыванием движка не изменишь. Только переписывание прикладных програм, или лучше написание их сразу с учетом многопользовательской среды выполнения.

Зная Ваш оракловский бэкграунд сразу скажу что версионник только создает иллюзию оптимального движка с точки зрения разделения доступа к ресурсам.
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Как найти причину Deadlock в MS SQL

Post by mskmel »

Lazy444 wrote: 02 Nov 2017 16:49Любопытства ради : А как в MSSQL можно отловить тот комп, с которого происходит login with incorrect password, и пользователь locked ?
Первая ссылка: https://www.google.com/search?q=ms+sql+ ... tdit+login
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Как найти причину Deadlock в MS SQL

Post by Dmitry67 »

Lazy444 wrote: 02 Nov 2017 16:49 Любопытства ради : А как в MSSQL можно отловить тот комп, с которого происходит login with incorrect password, и пользователь locked ?

Знаю как это делается в Оракле, но не знаю, как это делается в MS SQL.
Если используется Windows Login, то сиквелу пароль не передается, а передается токен уже зарегистрированного пользователя. Если пароль неправильный, то до логина к сиквелу даже не дойдет.

Если же используется SQL login, то неправильный пароль его никогда не лочит

Failed logins по умолчанию логгируются в логе, там же указан IP
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
ie
Уже с Приветом
Posts: 11019
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Как найти причину Deadlock в MS SQL

Post by ie »

zVlad wrote: 01 Nov 2017 19:33
Сабина wrote: 01 Nov 2017 17:30
zVlad wrote: 18 Oct 2017 19:22 Причина у deadlock одна, и устраняется она переписыванием программ.
в данном случае наверное только переписыванием самого движка.
Движок переписать можно было бы конечно
да! и чтоб два раза ни вставать перепишите виндовс тоже. :wink:
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Как найти причину Deadlock в MS SQL

Post by alex_127 »

эй, MSSQL - он на линухе теперь работает - может kernel сразу стоит тоже кардинально украсивить?
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Re: Как найти причину Deadlock в MS SQL

Post by zVlad »

ie wrote: 02 Nov 2017 18:23
zVlad wrote: 01 Nov 2017 19:33
Сабина wrote: 01 Nov 2017 17:30
zVlad wrote: 18 Oct 2017 19:22 Причина у deadlock одна, и устраняется она переписыванием программ.
в данном случае наверное только переписыванием самого движка.
Движок переписать можно было бы конечно
да! и чтоб два раза ни вставать перепишите виндовс тоже. :wink:
По мне так причин переписать Windows гораздо больше чем причин переписать MS SQL. Из того моего сообщение явно видно что я не сторонник переписывать MS SQL (движок), но Вы обрезали мое сообщения и тем самых исказили смысл до наоборот. Молодец! Способный фальсификатор получился бы.
User avatar
ie
Уже с Приветом
Posts: 11019
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Как найти причину Deadlock в MS SQL

Post by ie »

zVlad wrote: 02 Nov 2017 19:14
ie wrote: 02 Nov 2017 18:23
zVlad wrote: 01 Nov 2017 19:33
Сабина wrote: 01 Nov 2017 17:30
zVlad wrote: 18 Oct 2017 19:22 Причина у deadlock одна, и устраняется она переписыванием программ.
в данном случае наверное только переписыванием самого движка.
Движок переписать можно было бы конечно
да! и чтоб два раза ни вставать перепишите виндовс тоже. :wink:
По мне так причин переписать Windows гораздо больше чем причин переписать MS SQL. Из того моего сообщение явно видно что я не сторонник переписывать MS SQL (движок), но Вы обрезали мое сообщения и тем самых исказили смысл до наоборот. Молодец! Способный фальсификатор получился бы.
конешно, нас програмистов-экстраординари медом не корми, дай порассуждать о том как все можно переписать.
и все будет правильно и надежно. :wink:
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Как найти причину Deadlock в MS SQL

Post by Сабина »

Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
ie
Уже с Приветом
Posts: 11019
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Как найти причину Deadlock в MS SQL

Post by ie »

Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
надеюсь ВСЕ переписали с нуля? :wink:
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Re: Как найти причину Deadlock в MS SQL

Post by zVlad »

Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
Для меня - DBA DB2 for zOS - звучит как дикость какая то. Я не могу себе близко представить такого. По всем дедлокам в DB2 я узнаю элементарным просмотром сообщений DB2 в системном журнале (пример сообщения я приводил выше в этой теме), или обработкой записей в трассировке которую невозможно отключить. Кроме того поведение DB2 в отношении дедлоков никакими конфигурациями изменить не возможно, кроме необязательного таймаута, который по умолчанию 5 секунд и который существует для того чтобы программы имеющее встроенную обработку дедлоков с повторением запросов не слишком быстро повторялись и возможно снова попадали в дедлок.
Я специально распрашивал нашего MSSQL DBA о работе с дедлоками. Получалось что все так же как и в DB2, но читая такого рода сообщения я, уже не в первый раз прихожу к заключения что "также" не всегда на самом деле так.

P.S. Да и само название этой темы мои подозрения (на самом деле это уже давно не подозрения, а уверенность) подтверждают. А именно, нет такой проблемы: поиск причин дедлоков, потому что это уровень элементарной диагностики, которая просто должна быть без специальных танцев с бабнами. А вот проблема написания программ без опасности создания ситуаций с дедлоками в процессе их выполнения действительно существует. Выше я описал несколько способов, но вряд ли хоть кто-нибудь всерьез здесь это воспринял судя по всему. Учить этому надо с первого класса программирования для манагеров ресурсов совместного доступа с использованием замков. Но видимо этому не учат коль скоро проблема дедлоков спустя десятки лет появления первых таких манагеров до сих пор актуальна.
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Re: Как найти причину Deadlock в MS SQL

Post by zVlad »

Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
Вы уже второй раз на этой странице темы "навели тень на плетень" на "сам" MS SQL (RDBMS), который, конечно, тоже программа, но по идее пишется и тестируется (да и приемы написания там другие должны быть) иначе чем большенство поделушек массовых бизнес приложений.

Не могли Вы (не только для меня, я уверен) насколько можно детальней описан Ваши находки и понимание того что ж там было не так и почему? Вы говорите "причина была в неверной конфигурации". Что за конфигурация, как она могла вызвать дедлок? Это реально интересно.
Спасибо.
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Re: Как найти причину Deadlock в MS SQL

Post by zVlad »

ie wrote: 09 Nov 2017 21:56
Сабина wrote: 09 Nov 2017 21:44 Скажу банальность. В одном месте я нашла именно MSSQL deadlock .... прикрутив к апликейшену App Dynamics monitoring. Он показывал SQL exception, который не было видно otherwise. В логах например не было видно ( какой то умник его глушил). Стали раскапывать, оказалось этот экспепшен выбрасывался как результат дедлока. Там правда был еще Quartz scheduler замешан, причина была в неверной конфигурации
надеюсь ВСЕ переписали с нуля? :wink:
Судя по всему поправили конфигурацию. Какую только не ясно, но может Сабина прольет свет. Давайте все вместе ее попросим об этом.
User avatar
ie
Уже с Приветом
Posts: 11019
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Как найти причину Deadlock в MS SQL

Post by ie »

zVlad wrote: 14 Nov 2017 15:17 Давайте все вместе ее попросим об этом.
давайте. саааа-бииии-нааа :Bravo:
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Как найти причину Deadlock в MS SQL

Post by Сабина »

ie wrote: 14 Nov 2017 16:20
zVlad wrote: 14 Nov 2017 15:17 Давайте все вместе ее попросим об этом.
давайте. саааа-бииии-нааа :Bravo:
Это было 4 года назад, смеетесь что ли :)
Одно знаю что до меня никто и не знал про этот эксепшен и собственно проблему. Просто наблюдали что "почему то тут медленно очень".
Но я как обычно влезу и как сделаю что нибудь нетрадиционное :mrgreen:
https://www.youtube.com/watch?v=wOwblaKmyVw

Return to “Вопросы и новости IT”