powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
25 сообщений из 48, страница 1 из 2
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837490
noexp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день.
Столкнулись с такой проблемой:
в непредсказуемое время некоторые хранимки начинают очень долго отрабатывать (сотни секунд). Потом когда пробуешь повторить, они 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
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837498
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ожидания смотрите в момент,
когда тормозит:

Код: sql
1.
2.
3.
4.
5.
6.
7.
select s.login_name,      
       wt.*
from sys.dm_os_waiting_tasks wt
     join sys.dm_exec_sessions s
        on wt.session_id = s.session_id
where s.is_user_process = 1 --and s.session_id <> @@spid
order by wait_duration_ms desc;



или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms),
пускай в таблицу скидывает.
план и текст к этому всему ищется через sys.dm_exec_requests
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837505
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noexp например, с 12:03-12:06 несколько разных хранимок могут начать тупить, а потом дальше логи пустые и в MS SMSS в плане выполнения все нормально.

Checkpoint?
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837506
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нагуглите скрипт, которым можно смотреть блокировки,
или же у вас план исполнения кривой, его тоже можно фиксировать, потом сравнить - когда хорошо и когда плохо
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837510
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикего тоже можно фиксировать

тут фиксировать - в смысле сохранять
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837515
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикнагуглите скрипт, которым можно смотреть блокировки ,
или же у вас план исполнения кривой, его тоже можно фиксировать, потом сравнить - когда хорошо и когда плохо
и если это НЕ блокировки, а банальные ожидания диска?
как выше написали, может это чекпойнт долбит страницы на диск?

ожидания надо смотреть.
что вылезет, то вылезет.
совсем необязательно это именно блокировки
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837519
noexp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yasha123ожидания смотрите в момент,
когда тормозит:
...
или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms),
пускай в таблицу скидывает.
план и текст к этому всему ищется через sys.dm_exec_requests

Ну, в момент тормозов выполнялась эта штука:
Код: sql
1.
2.
3.
4.
5.
6.
7.
-- текущая ситуация на сервере (выполняемые запросы)
select session_id, status, wait_type, command, last_wait_type, percent_complete, qt.text, total_elapsed_time/1000 as [total_elapsed_time, сек],
       wait_time/1000 as [wait_time, сек], (total_elapsed_time - wait_time)/1000 as [work_time, сек]
  from sys.dm_exec_requests as qs
  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
  where session_id >= 50 and session_id <> @@spid
  order by 1


Но она просто показала что да, хранимки долго отрабатывают.
А что дальше - непонятно. План выполнения норм. Что делать с инфой, что она дольше обычного выполняется, хз =(
Сейчас та же самая хранимка и не тупит ни разу.
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837526
noexp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yasha123и если это НЕ блокировки, а банальные ожидания диска?
как выше написали, может это чекпойнт долбит страницы на диск?

ожидания надо смотреть.

Ну, про ожидания диска - дисковая очередь пустая, думаю, там бы тоже что-то проявлялась.
Про ожидания скрипт в любом случае заготовил, спасибо.
И про чекпоинт погуглю - что-то я впервые услышал, надо пойти поизучать.
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837532
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noexpНу, в момент тормозов выполнялась эта штука:
...
Но она просто показала что да, хранимки долго отрабатывают.
А что дальше - непонятно.
и что было в wait_type?
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837541
noexp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yasha123и что было в wait_type?

Да это не то же самое, что я прогонял тогда, как я понял - сейчас заготовил эту хранику и прогоню при воспроизведении, спасибо.
Про чекпоинты мысль интересная, нашел уже статей.
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837546
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noexpДа это не то же самое, что я прогонял тогда, как я понял - сейчас заготовил эту хранику и прогоню при воспроизведении, спасибо.
Про чекпоинты мысль интересная, нашел уже статей.
при чекпойнте очередь к диску была бы.
а раз у вас не было, там что угодно другое было.
ваш запрос тоже показал бы,
просто в случае именно блокировок,
мой покажет, кем блокируется, а ваш нет.
но чтобы понять, чего именно ожидали, вашего хватит.

у нас, например, недавно все висели с ASYNC_NETWORK_IO.
это бэкап по сети копировался,
т.к. им приспичило срочно ресторить.
все выполнялось непомерно долго,
но на самом деле -- мгновенно,
а все висели, т.к. клиент фетчил результат в час по чайной ложке
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837572
noexp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UP: Нашел запрос для просмотра статистики типов ожиданий:
http://sqlcom.ru/block-deadlock-and-latch/sql-server-wait-types-library/
И он выдал такую картину:

Не очень понимаю, как это трактовать - в распараллеливание все упирается что ли.
Ну, в общем, пока яснее не стало..
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837573
noexp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
noexpИ он выдал такую картину:
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837585
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько тяжелая база?
сними копию (если получится через backup, т.к. detach наверное пока лучше не рисковать)
затем может попробуй что-то из серии ALTER DATABASE ... SET SINGLE_USER WITH ...

кстати эксперименты можешь и на копии делать
(после restore, ну и WITH MOVE куда-нибудь в надёжное и заведомо доступное место)
при этом убив в разрешениях ролей всех реальных пользователей кроме себя
потому что в д.сл. гонятся за kill_sessions - как из пушки по воробьям.
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837587
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс, не та тема, игнор пож.
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837593
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noexpUP: Нашел запрос для просмотра статистики типов ожиданий:
http://sqlcom.ru/block-deadlock-and-latch/sql-server-wait-types-library/
И он выдал такую картину:

Не очень понимаю, как это трактовать - в распараллеливание все упирается что ли.
Ну, в общем, пока яснее не стало..
не надо вам статистику.
надо ожидания ВАШЕЙ ПРОБЛЕМНОЙ СЕССИИ в тот момент, когда она висит.
вам нало узнать, что ждет ваша сп, а не то, что жлали вообще все с момента рестарта
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837612
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noexp,

я бы посоветовал еще query store включить раз у вас версия сиквела позволяет.
с этой штукой сможете видеть в каких случаях происходила деградация плана отдельно взятой хранимки
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837746
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123ожидания смотрите в момент,
когда тормозит:

Код: sql
1.
2.
3.
4.
5.
6.
7.
select s.login_name,      
       wt.*
from sys.dm_os_waiting_tasks wt
     join sys.dm_exec_sessions s
        on wt.session_id = s.session_id
where s.is_user_process = 1 --and s.session_id <> @@spid
order by wait_duration_ms desc;



или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms),
пускай в таблицу скидывает.
план и текст к этому всему ищется через sys.dm_exec_requests

Profiler можно настроить пусть ловит и складывает в файлы
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837791
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинYasha123ожидания смотрите в момент,
когда тормозит:

Код: sql
1.
2.
3.
4.
5.
6.
7.
select s.login_name,      
       wt.*
from sys.dm_os_waiting_tasks wt
     join sys.dm_exec_sessions s
        on wt.session_id = s.session_id
where s.is_user_process = 1 --and s.session_id <> @@spid
order by wait_duration_ms desc;



или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms),
пускай в таблицу скидывает.
план и текст к этому всему ищется через sys.dm_exec_requests

Profiler можно настроить пусть ловит и складывает в файлы
и где именно в профайлере настраивается ловля ожиданий?
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837794
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123ожидания смотрите в момент,
когда тормозит:

Код: sql
1.
2.
3.
4.
5.
6.
7.
select s.login_name,      
       wt.*
from sys.dm_os_waiting_tasks wt
     join sys.dm_exec_sessions s
        on wt.session_id = s.session_id
where s.is_user_process = 1 --and s.session_id <> @@spid
order by wait_duration_ms desc;



или в джоб повесьте с нужным фильтром на длительность ожидания (wait_duration_ms),
пускай в таблицу скидывает.
план и текст к этому всему ищется через sys.dm_exec_requests

если spid известен, то вьюха sys.dm_exec_session_wait_stats в помощь
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837797
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradесли spid известен, то вьюха sys.dm_exec_session_wait_stats в помощь
в статистике (sys.dm_exec_session_wait_ stats ) нет spid-а,
там есть суммарные на весь сервер значения со времен рестарта.
если же вы про sys.dm_os_waiting_ tasks , где как раз есть spid,
то чем мой скрипт не угодил?
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837799
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad ,
прошу прощения.
не на ту dmv смотрю.
у нас 2014, там этого нет,
буду иметь в виду на будущее
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837802
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,

я имел ввиду, что если тормозит определенная сессия, то есть вью для сессионных ожиданий
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837803
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123 komrad ,
прошу прощения.
не на ту dmv смотрю.
у нас 2014, там этого нет,
буду иметь в виду на будущее

да, у автора 2017, эта вью доступна в 2016+
...
Рейтинг: 0 / 0
MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
    #39837817
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего не могу сказать по этому поводу,
т.к. не могу проверить, что выдает эта вьюха.
но если это все тот же sys.dm_os_wait_stats,
разделенный по сессиям, то вряд ли поможет.
надо ловить ожидания именно в тот момент, когда висит.

у меня висит джоб, который отлавливает все то,
где хоть какое-то ожидание длится более полминуты.
без разницы, какая сессия.
всех таких ловлю с планами для дальнейшего анализа.
а если использовать суммарную статистику по сессии,
то отловится туча всего хотя бы по CXPACKET,
но не отразит проблемы
...
Рейтинг: 0 / 0
25 сообщений из 48, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL 2017. Требуется помощь в обнаружении локов. В т.ч. в виде платных консультаций.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]