Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SUSPENDED запросы - как бороться?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4176
Есть клиентсерверное приложение.

В приложении юзер жмет кнопку "Поиск", на сервере запускается процедура, в ней перемолачиваются данные из таблиц во временные таблицы, обрабатываются и т.д. и затем выдаются.

Бывает такая ситуация, что один из запросов в процедуре уходит в состояние SUSPENDED

--?> domain\user21 (8116927ms)PWAIT_RESOURCE_SEMAPHORE_FT_PARA

юзер убивает приложение, но запрос остается висеть в таком состоянии на сервере.

У меня есть такое подозрение:
1. запрос ждет темпдб (там параметры роста стоят на некоторые файлы базы 10%, 1мб)
2. в приложении указан явно таймаут для запросов 0, потому он и торчит даже, когда приложение убито
26 янв 17, 12:54    [20148704]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
При разрыве коннекта происходит завершение выполнения пакета + происходит откат транзакций. Вероятно, команда зависает на ожидании предыдущей операции.
26 янв 17, 13:10    [20148779]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Ролг Хупин,

А вместо подозрений не пробовали прочитать что же такое WAIT_RESOURCE_SEMAPHORE?
https://www.sqlskills.com/help/waits/resource_semaphore/
26 янв 17, 13:25    [20148858]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4176
invm
Ролг Хупин,

А вместо подозрений не пробовали прочитать что же такое WAIT_RESOURCE_SEMAPHORE?
https://www.sqlskills.com/help/waits/resource_semaphore/


Спасибо, прочитал.
Мой зависший запрос - это инсерт во временную таблицу

На сервере используется 100 ГБ и свободно почти 90 ГБ.

Означает ли это, что речь идет только о выделении памяти RAM или и темпдб тоже?

Почему сервер не убивает запросы в состоянии SUSPENDED , у которых уже нет клиента?
Что сделать, чтобы он убивал их?
26 янв 17, 13:44    [20148992]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Ролг Хупин,

а INSERT из десятиэтажного SELECT ? выделение памяти из пула ресурсов (RAM)
26 янв 17, 13:58    [20149084]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
sfyj
Guest
Ролг Хупин
Почему сервер не убивает запросы ... , у которых уже нет клиента?
Что сделать, чтобы он убивал их?

Хороший вопрос.

Я знаю тоьлко один способ. Перезагрузить машину клиента.

Кто знает ещё способы ?
26 янв 17, 14:03    [20149123]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
sfyj
Ролг Хупин
Почему сервер не убивает запросы ... , у которых уже нет клиента?
Что сделать, чтобы он убивал их?

Хороший вопрос.

Я знаю тоьлко один способ. Перезагрузить машину клиента.

Кто знает ещё способы ?
застрелить пользователя.. попробовать стоит, ведь клиент не подключен же. Можно стих рассказать
26 янв 17, 14:06    [20149136]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
sfyj
Guest
TaPaK,

Отсутствие приложения - это не отсутствие подключения к базе.
Есть ещё софт, через который производится подключение.
Похоже, не всегда этот софт закрывает подключение при падении приложения.
26 янв 17, 14:10    [20149160]     Ответить | Цитировать Сообщить модератору
 Re: SUSPENDED запросы - как бороться?  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Ролг Хупин
Означает ли это, что речь идет только о выделении памяти RAM или и темпдб тоже?
https://blogs.msdn.microsoft.com/sqlqueryprocessing/2010/02/16/understanding-sql-server-memory-grant/
Ролг Хупин
Почему сервер не убивает запросы в состоянии SUSPENDED , у которых уже нет клиента?
Очевидно потому, что сервер так не считает. Следовательно, проблема у вас, видимо, на сетевом уровне.
26 янв 17, 14:16    [20149199]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить