Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Всем добрый день. Столкнулись с такой проблемой: в непредсказуемое время некоторые хранимки начинают очень долго отрабатывать (сотни секунд). Потом когда пробуешь повторить, они 20мс выдают. Подозреваем локи, но не можем их отловить. Сервер MS SQL 2017, данные находятся на SSD в raid1, tempdb на другом ssd в raid0. Дисковая очередь до 1 не добирается. Оперативы 128 Гб, проц Xeon, 64 логических ядра. Все запросы отрабатываются через хранимые процедуры, то есть, никаких неожиданных запросов нет, все можно замерить. Есть свой логгер, который отслеживает длительность отработки хранимок, и алертит, если выполнение идет слишком долго. Это позволяет находить узкие места и оптимизировать их. С помощью логгера эту проблему и поймали - логгер фиксирет долгое время выполнения хранимок. Дальше идешь их анализировать - а они отрабатывают нормально. Все срабатывания группируются по времени, например, с 12:03-12:06 несколько разных хранимок могут начать тупить, а потом дальше логи пустые и в MS SMSS в плане выполнения все нормально. С журналом событий винды корреляций не замечено тоже - но может не туда смотрим. Версий несколько - лок, сеть, обновления винды %) (обновления вроде уже как отсекли). Собственно, вропрос в том, как дальше отлавливать эту проблему. Несколько раз получалось прямо в момент проявления симптома застать БД, но так как непонятно, куда смотреть - то так ничего и не прояснилось. Рассматриваем вариант приглашения профильного специалиста для проведения анализа или платной консультации. Оплата по безналу от ООО, надо будет подписать NDA. Модератор: За платными услугами вот сюда: https://www.sql.ru/forum/job ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 15:26 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
ожидания смотрите в момент, когда тормозит: Код: sql 1. 2. 3. 4. 5. 6. 7. или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms), пускай в таблицу скидывает. план и текст к этому всему ищется через sys.dm_exec_requests ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 15:36 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
noexp например, с 12:03-12:06 несколько разных хранимок могут начать тупить, а потом дальше логи пустые и в MS SMSS в плане выполнения все нормально. Checkpoint? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 15:46 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
нагуглите скрипт, которым можно смотреть блокировки, или же у вас план исполнения кривой, его тоже можно фиксировать, потом сравнить - когда хорошо и когда плохо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 15:46 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Критикего тоже можно фиксировать тут фиксировать - в смысле сохранять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 15:47 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Критикнагуглите скрипт, которым можно смотреть блокировки , или же у вас план исполнения кривой, его тоже можно фиксировать, потом сравнить - когда хорошо и когда плохо и если это НЕ блокировки, а банальные ожидания диска? как выше написали, может это чекпойнт долбит страницы на диск? ожидания надо смотреть. что вылезет, то вылезет. совсем необязательно это именно блокировки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 15:52 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Yasha123ожидания смотрите в момент, когда тормозит: ... или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms), пускай в таблицу скидывает. план и текст к этому всему ищется через sys.dm_exec_requests Ну, в момент тормозов выполнялась эта штука: Код: sql 1. 2. 3. 4. 5. 6. 7. Но она просто показала что да, хранимки долго отрабатывают. А что дальше - непонятно. План выполнения норм. Что делать с инфой, что она дольше обычного выполняется, хз =( Сейчас та же самая хранимка и не тупит ни разу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 16:03 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Yasha123и если это НЕ блокировки, а банальные ожидания диска? как выше написали, может это чекпойнт долбит страницы на диск? ожидания надо смотреть. Ну, про ожидания диска - дисковая очередь пустая, думаю, там бы тоже что-то проявлялась. Про ожидания скрипт в любом случае заготовил, спасибо. И про чекпоинт погуглю - что-то я впервые услышал, надо пойти поизучать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 16:08 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
noexpНу, в момент тормозов выполнялась эта штука: ... Но она просто показала что да, хранимки долго отрабатывают. А что дальше - непонятно. и что было в wait_type? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 16:24 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Yasha123и что было в wait_type? Да это не то же самое, что я прогонял тогда, как я понял - сейчас заготовил эту хранику и прогоню при воспроизведении, спасибо. Про чекпоинты мысль интересная, нашел уже статей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 16:40 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
noexpДа это не то же самое, что я прогонял тогда, как я понял - сейчас заготовил эту хранику и прогоню при воспроизведении, спасибо. Про чекпоинты мысль интересная, нашел уже статей. при чекпойнте очередь к диску была бы. а раз у вас не было, там что угодно другое было. ваш запрос тоже показал бы, просто в случае именно блокировок, мой покажет, кем блокируется, а ваш нет. но чтобы понять, чего именно ожидали, вашего хватит. у нас, например, недавно все висели с ASYNC_NETWORK_IO. это бэкап по сети копировался, т.к. им приспичило срочно ресторить. все выполнялось непомерно долго, но на самом деле -- мгновенно, а все висели, т.к. клиент фетчил результат в час по чайной ложке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 16:52 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
UP: Нашел запрос для просмотра статистики типов ожиданий: http://sqlcom.ru/block-deadlock-and-latch/sql-server-wait-types-library/ И он выдал такую картину: Не очень понимаю, как это трактовать - в распараллеливание все упирается что ли. Ну, в общем, пока яснее не стало.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 17:59 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
noexpИ он выдал такую картину: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 18:00 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
насколько тяжелая база? сними копию (если получится через backup, т.к. detach наверное пока лучше не рисковать) затем может попробуй что-то из серии ALTER DATABASE ... SET SINGLE_USER WITH ... кстати эксперименты можешь и на копии делать (после restore, ну и WITH MOVE куда-нибудь в надёжное и заведомо доступное место) при этом убив в разрешениях ролей всех реальных пользователей кроме себя потому что в д.сл. гонятся за kill_sessions - как из пушки по воробьям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 18:21 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
упс, не та тема, игнор пож. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 18:22 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
noexpUP: Нашел запрос для просмотра статистики типов ожиданий: http://sqlcom.ru/block-deadlock-and-latch/sql-server-wait-types-library/ И он выдал такую картину: Не очень понимаю, как это трактовать - в распараллеливание все упирается что ли. Ну, в общем, пока яснее не стало.. не надо вам статистику. надо ожидания ВАШЕЙ ПРОБЛЕМНОЙ СЕССИИ в тот момент, когда она висит. вам нало узнать, что ждет ваша сп, а не то, что жлали вообще все с момента рестарта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 18:30 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
noexp, я бы посоветовал еще query store включить раз у вас версия сиквела позволяет. с этой штукой сможете видеть в каких случаях происходила деградация плана отдельно взятой хранимки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 20:16 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Yasha123ожидания смотрите в момент, когда тормозит: Код: sql 1. 2. 3. 4. 5. 6. 7. или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms), пускай в таблицу скидывает. план и текст к этому всему ищется через sys.dm_exec_requests Profiler можно настроить пусть ловит и складывает в файлы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 10:33 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Ролг ХупинYasha123ожидания смотрите в момент, когда тормозит: Код: sql 1. 2. 3. 4. 5. 6. 7. или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms), пускай в таблицу скидывает. план и текст к этому всему ищется через sys.dm_exec_requests Profiler можно настроить пусть ловит и складывает в файлы и где именно в профайлере настраивается ловля ожиданий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 11:36 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Yasha123ожидания смотрите в момент, когда тормозит: Код: sql 1. 2. 3. 4. 5. 6. 7. или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms), пускай в таблицу скидывает. план и текст к этому всему ищется через sys.dm_exec_requests если spid известен, то вьюха sys.dm_exec_session_wait_stats в помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 11:41 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
komradесли spid известен, то вьюха sys.dm_exec_session_wait_stats в помощь в статистике (sys.dm_exec_session_wait_ stats ) нет spid-а, там есть суммарные на весь сервер значения со времен рестарта. если же вы про sys.dm_os_waiting_ tasks , где как раз есть spid, то чем мой скрипт не угодил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 11:45 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
komrad , прошу прощения. не на ту dmv смотрю. у нас 2014, там этого нет, буду иметь в виду на будущее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 11:47 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Yasha123, я имел ввиду, что если тормозит определенная сессия, то есть вью для сессионных ожиданий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 11:48 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
Yasha123 komrad , прошу прощения. не на ту dmv смотрю. у нас 2014, там этого нет, буду иметь в виду на будущее да, у автора 2017, эта вью доступна в 2016+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 11:49 |
|
||
|
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
|
|||
|---|---|---|---|
|
#18+
ничего не могу сказать по этому поводу, т.к. не могу проверить, что выдает эта вьюха. но если это все тот же sys.dm_os_wait_stats, разделенный по сессиям, то вряд ли поможет. надо ловить ожидания именно в тот момент, когда висит. у меня висит джоб, который отлавливает все то, где хоть какое-то ожидание длится более полминуты. без разницы, какая сессия. всех таких ловлю с планами для дальнейшего анализа. а если использовать суммарную статистику по сессии, то отловится туча всего хотя бы по CXPACKET, но не отразит проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39837573&tid=1687494]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 402ms |

| 0 / 0 |
