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

Откуда:
Сообщений: 368
Имею
База данных - SQL Server Developer Edition (8.00.2039 SP4)
Платформа (операционка) - NT INTEL X86 (MS Server 2003 SP2)
Память - 4 гига

Проблема такая. В программе каждые 2 секунды крутится:
UPDATE OPCII_JOINT SET
CUR_VALUE= CASE NOM_CMD
WHEN 29 THEN 0
WHEN 35 THEN 0
WHEN 36 THEN 1
WHEN 40 THEN 0
WHEN 43 THEN 0
WHEN 44 THEN 0
END,
TIME_START='20.11.2013 21:26:12'
WHERE NOM_CMD in (29,35,36,40,43,44)

В какой-то момент времени программа (или действие в базе) подвисает. В базе на эту таблицу нет триггеров на UPDATE.

Может быть некорректно создана запись на UPDATE?

Может запрос должен быть такой:
UPDATE OPCII_JOINT SET
CUR_VALUE= CASE
WHEN NOM_CMD = 29 THEN 0
WHEN NOM_CMD = 35 THEN 0
WHEN NOM_CMD = 36 THEN 1
WHEN NOM_CMD = 40 THEN 0
WHEN NOM_CMD = 43 THEN 0
WHEN NOM_CMD = 44 THEN 0
END,
TIME_START='20.11.2013 21:26:12'
FROM OPCII_JOINT WHERE NOM_CMD in (29,35,36,40,43,44)

И не мешает ли здесь каким-нибудь образом поле даты - TIME_START?
21 ноя 13, 11:46    [15167093]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sergi
В какой-то момент времени программа (или действие в базе) подвисает.

Как вы это определяте ? Что и как мониторите ?
21 ноя 13, 11:52    [15167138]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Sergi
Member

Откуда:
Сообщений: 368
Мониторю программно. Это последняя операция в программе, которая не выполняется перед зависанием. Самое интересное, что зависание может произойти, как на 10-ой минуте, так и на 4-ом дне работы программы.
21 ноя 13, 12:06    [15167252]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Sergi
Member

Откуда:
Сообщений: 368
Может быть на SQL Server поставить все HotFix, которые были выпущены для обновления версии? Может быть поможет?
21 ноя 13, 12:08    [15167265]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sergi
Это последняя операция в программе, которая не выполняется перед зависанием.

Что у вас является критерием для "зависания" ?
Откуда вы знаете, что команда именно "зависла" ?
21 ноя 13, 12:09    [15167273]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Sergi
Member

Откуда:
Сообщений: 368
Зависла - значит программа не отвечает на запросы. Диспетчер задач указывает, что она "не отвечает". Иногда бывает, что после зависания программа вылетает из операционки, т.е. закрывается.

Стал сейчас смотреть Enterprise Manager. Он говорит, что сервер завис на отборе:
select * from JOURNAL_DAMAGE
where METKA=0
order by UNK_NN

Может быть он некорректный? Поле METKA у меня имеет формат BIT. В таблице это поле заполняется FALSE или TRUE. В отборе я указываю = 0. Может что здесь не так?

В Enterprise где ProcessInfo в поле WaitType стоит NETWORKIO.
21 ноя 13, 12:58    [15167661]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Sergi
сервер завис на отборе:
select * from JOURNAL_DAMAGE
where METKA=0
order by UNK_NN

А сколько у вас всего записей в JOURNAL_DAMAGE, и сколько удовлетворяют условию METKA=0?
21 ноя 13, 13:13    [15167741]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sergi
тал сейчас смотреть Enterprise Manager. Он говорит, что сервер завис на отборе:

И как же он говорит про это ? У коннекта статут "сервер завис на отборе" ?
И причем тут select ? вы же писали про update ?

Sergi
В Enterprise где ProcessInfo в поле WaitType стоит NETWORKIO.

Это означает, что завис не сервер. Это клиентское приложение не спешит забирать данные запроса

Сообщение было отредактировано: 21 ноя 13, 13:26
21 ноя 13, 13:14    [15167754]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Sergi
Member

Откуда:
Сообщений: 368
Гость333
Sergi
сервер завис на отборе:
select * from JOURNAL_DAMAGE
where METKA=0
order by UNK_NN

А сколько у вас всего записей в JOURNAL_DAMAGE, и сколько удовлетворяют условию METKA=0?


Ну предположим 100 штук.
21 ноя 13, 13:35    [15167908]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Sergi
Гость333
пропущено...

А сколько у вас всего записей в JOURNAL_DAMAGE, и сколько удовлетворяют условию METKA=0?


Ну предположим 100 штук.

100 записей всего в JOURNAL_DAMAGE, или 100 записей, удовлетворяющих условию METKA=0?
21 ноя 13, 13:43    [15167981]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы в операйции UPDATE.. CASE... WHEN... THEN...  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
ТС, запустите уже наконец профайлер и посмотрите , что у вас там ваша аппликуха творит на сервере
21 ноя 13, 13:48    [15168019]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить