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

Откуда:
Сообщений: 143
Столкнулся с тем что при выполнении WAITFOR DELAY '00:00:01' ,т.е. через каждую секунду, в цикле while процесс вообще останавливается через несколько десятков минут. В чем может быть причина?
28 апр 13, 10:06    [14240169]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
В настройке timeout запроса на клиенте, которую вы может быть и не выставляли, но она присутствует по-умолчанию, и ее надо выставлять в "бесконечность" для таких дел.
28 апр 13, 10:45    [14240239]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
forts
Member

Откуда:
Сообщений: 143
Глеб
В настройке timeout запроса на клиенте, которую вы может быть и не выставляли, но она присутствует по-умолчанию, и ее надо выставлять в "бесконечность" для таких дел.

Я не опытный пользователь. Вы это имеете в виду в SMS ?
Tools->Options->Query Execution->SQL server->General->Execution timeout.
У меня выставлено в 0. т.е. неограниченное ожидание.
Если не это что я написал, подскажите где выставить.
28 апр 13, 11:05    [14240262]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
forts
в цикле while процесс вообще останавливается через несколько десятков минут
А что значит "процесс вообще останавливается"?
Коннект разрывается? Прекращается выполнение каждый раз на произвольной команде? Выходит из цикла?
28 апр 13, 11:10    [14240273]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
forts
Member

Откуда:
Сообщений: 143
alexeyvg
forts
в цикле while процесс вообще останавливается через несколько десятков минут
А что значит "процесс вообще останавливается"?
Коннект разрывается? Прекращается выполнение каждый раз на произвольной команде? Выходит из цикла?


Не выполняется следующая команда за ней. Т.е. зависает выполнение цикла. Коннект не разрывается, из цикла не выходит.
28 апр 13, 13:23    [14240436]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
Glory
Member

Откуда:
Сообщений: 104751
forts
Т.е. зависает выполнение цикла. Коннект не разрывается, из цикла не выходит.

ну так может ваш цикл так написан ?
28 апр 13, 13:44    [14240485]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
forts
Member

Откуда:
Сообщений: 143
Glory
forts
Т.е. зависает выполнение цикла. Коннект не разрывается, из цикла не выходит.

ну так может ваш цикл так написан ?


ОТКРЫТИЕ КУРСОРА
СЧИТЫВАНИЕ ПЕРВОЙ ЗАПИСИ
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE ТАБЛИЦУ ЗАПУСКАЮЩУЮ ТРИГГЕР.

WAITFOR DELAY '00:00:01'

FETCH СЛЕДУЮЩУЮ СТРОКУ
END

ВОТ ТАКОЙ ПРОСТОЙ ЦИКЛ.
ЕСЛИ ВМЕСТО WAITFOR DELAY СТАВЛЮ КАКОЙ НИБУДЬ ЦИКЛ ДЛЯ ОЖИДАНИЯ ВСЕ В ПОРЯДКЕ, ЕСЛИ ВООБЩЕ БЕЗ ОЖИДАНИЙ В ВИДЕ ЦИКЛА ИЛИ WAITFOR ВСЕ РАБОТАЕТ КАК ПОЛОЖЕНО ТОЖЕ. Т.Е. ТОЛЬКО ПРИ WAITFOR DELAY ВОЗНИКАЕТ ПРОБЛЕМА ГДЕ ТО НА ПЯТОМ ДЕСЯТКЕ МИНУТ, КАК БУДТО КАКОЙ ТО СЧЕТЧИК ПЕРЕПОЛНЯТСЯ.
28 апр 13, 14:00    [14240508]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
forts
Не выполняется следующая команда за ней
А как вы установили, что зависает на WAITFOR DELAY, а не на FETCH или UPDATE?
Вы смотрите профайлером или это просто предположения?

Я подозреваю, что виснет на UPDATE, это легко проверить, запустив sp_who2
28 апр 13, 15:07    [14240596]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
forts,

А вот капслока не надо.
И осваивайте профайлер, будете видеть, а не гадать, отлаживаться станет легче и быстрее.
28 апр 13, 15:08    [14240597]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
forts
Member

Откуда:
Сообщений: 143
alexeyvg
forts
Не выполняется следующая команда за ней
А как вы установили, что зависает на WAITFOR DELAY, а не на FETCH или UPDATE?
Вы смотрите профайлером или это просто предположения?

Я подозреваю, что виснет на UPDATE, это легко проверить, запустив sp_who2


я просто убираю из тела цикла WAITFOR и все работает без остановки сутками.
Или делаю задержку создав пустой цикл и тоже работает без остановки сколь угодно долго.
Вставляю WAITFOR и на пятом десятке минут зависание в цикле.
28 апр 13, 15:10    [14240600]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
aleks2
Guest
Чо, вот так останавливается?

WHILE 1 =1 
BEGIN

WAITFOR DELAY '00:00:01'
print 'I am working!'

END
28 апр 13, 15:12    [14240602]     Ответить | Цитировать Сообщить модератору
 Re: WAITFOR DELAY прекращает отрабатывать.  [new]
aleks2
Guest
Вот так веселее.
WHILE 1 =1 
BEGIN

WAITFOR DELAY '00:00:01'
raiserror('I am working!',0,0) with nowait;

END
28 апр 13, 15:16    [14240606]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить