Имя: Пароль:
1C
1C 7.7
v7: SQL: Время ожидания истекло
,
0 forforumandspam
 
27.09.13
10:21
Добрый день. Ни с того, ни с сего стала выходить сегодня вот такая ошибка: "SQL State: HYT00 Native: 0 Message: [Microsoft][ODBC SQL Server Driver]Время ожидания истекло". Вчера её не было. На форумах нашёл много информации про данную ошибку, но случаи не подходят. Стоит windows server 2003, 1С 7.70.027, SQL 2000. Вот мои симптомы:
Ошибка появляется только при проведении документа "Реализация товаров". Справочники записываются нормально, другие документы проводятся нормально. Даже проведенные документы "Реализация товаров" проводятся повторно нормально, а вот непроведённые провести не удаётся. Ошибке предшествует код "Операция.Записать();" Провожу документ из терминала, т.е. ошибка в сети исключена, как у многих с аналогичной ошибкой. Что это может быть?
1 varelchik
 
27.09.13
10:35
Кто-то блокирует журнал.
2 Mikeware
 
27.09.13
10:36
запусти профайлер, и посмотри, что делает сервер...
3 Mikeware
 
27.09.13
10:37
а вообще, конец месяца, и т.е. пересчет итогов штатной хранимкой идет с начала месяца  - тормоза нарастают.
4 forforumandspam
 
27.09.13
10:44
+(0) Обмен не может пройти.

(1) Я уже просил всех перезайти в 1С. Ошибка осталась.
(2) К своему стыду не знаю, что это такое.
(3) Перепроводит документ за секунду, а проводит и 15 стандартных секунд не хватает?
5 Mikeware
 
27.09.13
10:51
(3) при _пере_проведении сначала идет ClearRecalcDocAct, потом WriteDocAct, а пр ипроведении непроведенного - только WriteDocAct
6 forforumandspam
 
27.09.13
11:01
Странно всё решилось. Хотел уже и службу SQL перезагрузить. В последний момент увеличил время ожидания и время захвата в 2 раза и документы стали проводится, причём первый раз долго, а потом стали быстро, как и должны. Вернул время назад - работает. Обмен прошёл. Сетевые пользователи тоже стали работать нормально. Что это было? О_О
7 пипец
 
27.09.13
11:35
вообщето SQL необходимо админить , регламентные задачи и все такое , как и скульную базу
8 пипец
 
27.09.13
11:38
9 Mikeware
 
27.09.13
11:46
(8) забавный дятел по первой ссылке...
10 пипец
 
27.09.13
11:50
(9) бывает ;)) главное обще понимание, что SQL это не тайота - сел и поехал (с) ...
11 ЧеловекДуши
 
27.09.13
14:15
(0) Смотри чего навоял, а скорей всего не навоял.
Все дело в том, что при определенном объеме информации SQL БД начинает паршиво работать с запросами от самой 1С :)
...
Бывает прямые запросы спасут отца демократии :)
12 ЧеловекДуши
 
27.09.13
14:18
(6) Это на время, пока число пользователей в БД не начнет опять повышаться.
Или не начнут запускать какой либо МЕГО отчет на прямых запросах. :)
Не забывай, что мего отчеты выполняются уже на самом SQL и тут ресурсов SQL 2000 физически может не хватить, если такой отчет начнут запускать 10 и более пользователей :)
13 Mikeware
 
27.09.13
14:20
(12) смотря как писать...
впрочем, сам вот кувыркаюсь - под конец месяца штатная запись/проведение документа  начинает зверски тормозить...
14 echo77
 
27.09.13
14:23
у кого-то из пользователей слишком тормозной компьютер, вот он и блокирует при проведении таблицу.
У нас так в свое время 5 лет назад было. В EA это хорошо было видно
15 floody
 
27.09.13
14:27
может просто кто-то что-то большое и долгое проводил? типа восстановления ГП, ну или формирование книги покупок какое-нибудь.
16 Mikeware
 
27.09.13
14:31
(15) формирование книги не блокирует журнал.
а штатное восстановление ГП проводится в монопольном режиме.
17 пипец
 
27.09.13
15:00
уже сто раз повторялось , при массовом проведении документов растет лог и падает производительность (да и блокировки) , решается перевходом юзверя 1с (для SQL2000 это болезнь) многие в свое время откатывались на SQL 7.0
18 forforumandspam
 
27.09.13
15:06
Так я на сервере, при отсутствии пользователей не мог провести документ, за секунду отрабатывал весь алгоритм проведения, а потом 15 секунд тупило над "Операция.Записать();", при чём другие документы проводились нормально. Поставил время ожидания 30 и документ провёлся за ~30 секунд, потом любой другой документ реализации стал проводится <секунды, как и должно быть.
19 Mikeware
 
27.09.13
15:13
(17) лог ни причем. проблемы с темпбд.
решение тоже очень давно известно (с 2004 года как минимум)
20 пипец
 
27.09.13
15:57
(19) и лог и темп и много чего ;)) у софтпоинта гибкие блокировки но можно и самому написать
ЗЫ (18) прикрути 1с++ к проведению документа - будет работать в разы быстрее
21 forforumandspam
 
27.09.13
15:59
(20) Уже вернулось всё на круги своя.
22 Mikeware
 
27.09.13
16:01
(20) лог к проблеме роста временных таблиц никаким боком не относится. Ошибка называется:
Bug 472280: There is a decrease in performance when you frequently create and drop temporary tables in SQL Server 2000
23 Z1
 
27.09.13
16:27
(13) считай остатки от обратного или от конца месяца или от TA
т.е. если нужно остаток на начала текущего дня
движений за сегодня день гораздо меньше чем
движений с 01 по 26 число(а в будущих числах как правило никто не работает ) .
Это справедливо для любой даты.