Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Регулярный Suspend на select коммандах / 10 сообщений из 10, страница 1 из 1
21.12.2019, 23:12
    #39906593
Andy06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Есть 2 БД.
В одной изменение таблиц (insert/update/delete) не выполняется. Из нее только идет выборка с JOIN в другую БД, в которую как раз и идет наполнение данными. Там 3 таблицы, 2 из которых считываются в запросе и они же наполняются. Индексы только некластерные (ни одного кластерного индекса на этих двух таблицах).
Работа происходит примерно так:
1. Получил данные (select .... left join [second DB]);
2. Идет анализ полученных данных, формирование новых массивов данных, полученных в результате анализа, и наполнение 3 таблиц во второй БД ([second DB]). Добавление происходит через BULK-Insert по 50'000 строк за раз.
3. Снова выполняется пункт #1.

Так вот при выполнении пункта 1 у меня происходит очень долгий запрос. По началу такого не было. Видимо это связано с ростом индекса, но я не понимаю вот чего. Я добавил данные. Если функция программы продолжается, значит сервер вернул программе что "всё ОК", а это значит что и индекс он перестроил. Так если индекс перестроен, чего сервер так долго обрабатывает запрос и суспендид комманды? Картинку прикладываю (приложил бы текстом, но не знаю какой коммандой получить).

Вопрос вот в чем. Можно ли что-то сделать для того чтобы сервер не суспендил каждый запрос выборки (или суспендил но на меньшее время, потому что реально suspend долгий)? Или где хоть почитать про это? Или хотябы скажите как правильно гуглу этот вопрос задать, ведь я даже не знаю что искать.
...
Рейтинг: 0 / 0
21.12.2019, 23:23
    #39906595
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Andy06Можно ли что-то сделать для того чтобы сервер не суспендил каждый запрос выборки (или суспендил но на меньшее время, потому что реально suspend долгий)? Или где хоть почитать про это? Или хотябы скажите как правильно гуглу этот вопрос задать, ведь я даже не знаю что искать.

msdnsuspended = The session is waiting for an event, such as I/O, to complete.
...
Рейтинг: 0 / 0
21.12.2019, 23:43
    #39906598
Andy06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Так, ну я понял что проблема в ожидании завершения чего-то, вопрос чего именно?
В Wait Type (в мониторе активности) по долгу стоит pageiolatch_sh.
...
Рейтинг: 0 / 0
22.12.2019, 01:17
    #39906610
Andy06
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Для тех, кто столкнется с такой же проблемой советую прочитать статью: https://www.sqlshack.com/handling-excessive-sql-server-pageiolatch_sh-wait-types/
...
Рейтинг: 0 / 0
23.12.2019, 12:31
    #39906950
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Andy06,

SUSPEND это нехватка памяти, нехватка ядер. Кратковременный SUSPEND при параллелизме - это нормально. В обоих случаях недостаточно физических ресурсов. Либо настроены какие-то приоритеты, управление ресурсами или ещё что-то. Но это врят ли Ваш случай. Может быть "холодная" база. Надо детально разбираться - что и при каких условиях.
...
Рейтинг: 0 / 0
23.12.2019, 12:52
    #39906957
Регулярный Suspend на select коммандах
Владислав Колосов
Кратковременный SUSPEND при параллелизме - это нормально.
А можно ссылочку на подробности?
...
Рейтинг: 0 / 0
23.12.2019, 13:30
    #39906987
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Владислав Колосов

SUSPEND это нехватка памяти, нехватка ядер.
Кратковременный SUSPEND при параллелизме - это нормально.
В обоих случаях недостаточно физических ресурсов.
Либо настроены какие-то приоритеты, управление ресурсами или ещё что-то.
Но это врят ли Ваш случай. Может быть "холодная" база.
Надо детально разбираться - что и при каких условиях.

что сразу нехватка-то.
достаточно повесить Sch-M на особо популярную таблицу,
как будет поезд из suspended
...
Рейтинг: 0 / 0
23.12.2019, 13:33
    #39906989
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Любопытный гость
Владислав Колосов
Кратковременный SUSPEND при параллелизме - это нормально.
А можно ссылочку на подробности?

например More on CXPACKET Waits: Skewed Parallelism
...
Рейтинг: 0 / 0
23.12.2019, 13:40
    #39906995
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Любопытный гость,

немного проигрываете в ожидании синхронизации, но выигрываете в производительности в целом. Админов ожидания CX_PACKET обычно приводят в ужас своими цифрами и они радостно кричат вот почему сервер тормозит! Надо отключать параллелизм!
...
Рейтинг: 0 / 0
23.12.2019, 13:47
    #39907004
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярный Suspend на select коммандах
Владислав Колосов
Любопытный гость,

немного проигрываете в ожидании синхронизации, но выигрываете в производительности в целом. Админов ожидания CX_PACKET обычно приводят в ужас своими цифрами и они радостно кричат вот почему сервер тормозит! Надо отключать параллелизм!

сейчас его ещё и разделили +CXCONSUMER, так что теперь всё на них в топе :)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Регулярный Suspend на select коммандах / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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