Имя: Пароль:
1C
1С v8
Зависает база 1с
, ,
0 iG4nG
 
06.02.13
12:29
Доброго времени суток всем! Возникла проблема. Есть 2 сервера. Первый сервер Win Server 2003 на нем стоит SQL 2008, и второй сервер Win Server 2003, на нем стоит 1с 8.2 УПП. Точных характеристик железа не помню, но они вполне хорошие и проц грузится при работе максимум на 30 процентов.
При групповом проведении документов в 1с у всех начинает висеть база. В базе работают около 70 человек. Пробовал добавить ещё один 1с-ый сервак, не помогло (думал может кластер не справляется и хотел его немного разгрузить). Данных заносится очень много. Делал шринки в SQL не помогло. Из всей проведенной мною работы сделал выводы что именно SQL зависает при запуске групповых обработках. Если запустить обработку, то другой человек уже не может провести любой документ. Вылазит ошибка блокировки. Как оптимизировать работу SQL и сделать чтобы он работал быстрее? Как устранить все висяки? Заранее спасибо
1 Андрюха
 
06.02.13
12:30
При групповом проведении документов оно и должно втупливать, не?
2 iG4nG
 
06.02.13
12:32
(1) на компе, где запустили да. а другие пользователи при этом не должны страдать
3 CrazyBear
 
06.02.13
12:32
(0) та же беда, решали просто, перепроводили документы ночью
4 Андрюха
 
06.02.13
12:32
(2) не факт
5 mehfk
 
06.02.13
12:33
(0) Вот такую процедуру пользуй
Процедура Sleep(Сек)
   scr = Новый ComОбъект("WScript.Shell");
   scr.Run("ping 127.0.0.1 -n "+СокрЛП(Число(Сек)),0,1);
КонецПроцедуры
6 iG4nG
 
06.02.13
12:34
(3) нет возможности делать это ночью. руководство хочет все видеть именно в рабочее время
7 i4i
 
06.02.13
12:35
Возможно, у тебя режим блокировок транзакций Автоматический стоит.
8 iG4nG
 
06.02.13
12:35
(4) факт, другие базы почему-то не висят. но там и данных меньше забивается. там SQL справляется(20 пользователей). а именно в этой базе все висит
9 iG4nG
 
06.02.13
12:35
(7) а где это можно посмотреть? и что даст если я его отключу?
10 iG4nG
 
06.02.13
12:37
(5) вопрос для чего использовать данную процедуру?
11 i4i
 
06.02.13
12:39
(9) Конфигуратор - Конфигурация - Свойства - Режим управления блокировкой данных. Если стоит Автоматитческий, значит при проведении уровень блокировки Таблица и документы висят на ожидании блокировки.
12 Андрюха
 
06.02.13
12:40
(10) Видимо чтобы другие пользователи успевали что-то проводить
13 iG4nG
 
06.02.13
12:42
(11) у меня там стоит "автоматический и управляемый". есть возможность выбора:"автоматический", "управляемый", "автоматический и управляемый". какой нужно выставить?
14 Повелитель
 
06.02.13
12:43
(0) Возможно в групповой обработке используете.
НачатьТранзакцию()
ЗафиксироватьТранзакцию()

Если это убрать, то думаю не будет так людям мешать.
15 iG4nG
 
06.02.13
12:43
(12) в этом и проблема, по сути работает только один человек из 70 на момент зависаний
16 i4i
 
06.02.13
12:45
(13) Управляемый
17 Андрюха
 
06.02.13
12:47
(15) По-моему вряд ли удастся подшаманить чтобы перепроводилось незаметно, во всяком случае я тож делаю с паузами, иначе один х не получается нормально, тупит-с.
18 iG4nG
 
06.02.13
12:48
(16) мне вот тут только что подсказали что это уже делалось. в нашей конфигурации должно стоять "автоматический и управляемый", так что этот вариант отпадает, спасибо
19 iG4nG
 
06.02.13
12:49
(14) используем... но без этого никак не обойтись...
20 iG4nG
 
06.02.13
12:50
(17) я не прошу чтобы прям совсем незаметно. пусть хотя бы проводятся (на данный момент даже не проводится и выдается ошибка блокировки)
21 Повелитель
 
06.02.13
12:52
(20)
Ну вот с этим:
НачатьТранзакцию()
ЗафиксироватьТранзакцию()
незаметно точно не получиться.

Ну и плюс возможно паузы встроить. Будет как бы не в нонстоп режиме проводить, а как бы имитировать работу пользователя.
Да будет дольше, но зато другим мешать не будет.
22 mehfk
 
06.02.13
12:55
Прямо Треугольник Хопкинса: НачатьТранзакцию() - КомфортнаяРаботаПользователей - НетТормозам.
23 Андрюха
 
06.02.13
12:55
(20) Ну делай паузы чё, только не такой жестью как пинг через скрипт, а культурно - Предупреждение("Пауза...", 3) или Вопрос() с возможностью прервать обработку.
24 Повелитель
 
06.02.13
12:56
(23) Паузы не спасут если в транзакции запущено.
25 Андрюха
 
06.02.13
12:58
(24) Транзакции конечно надо убирать
26 Повелитель
 
06.02.13
13:02
Автор озвучь цель, а то мне вот непонятно для каких целей вы днем хотите документы препроводить?
Если партии то это реализовано и гораздо быстрее чем пере проведение.
27 iG4nG
 
06.02.13
13:10
(22) клиенту это тяжело объяснить, когда в др базах все работает нормально :)
28 iG4nG
 
06.02.13
13:11
(24) при этом варианте висяки будут длиться дольше и другие пользователи так же не смогут проводить ничего
29 iG4nG
 
06.02.13
13:12
(26) именно днем нужно, потому что руководство хочет видеть текущие отчеты именно сейчас, а не завтра с утра за вчерашний день
30 iG4nG
 
06.02.13
13:13
(23) прерывать тоже не вариант, спасибо конечно за помощь, но тут нужно сделать как-то чтобы быстрее документы проводились или чтобы SQL работал быстрее
31 Повелитель
 
06.02.13
13:14
(29) А какие интересно отчеты не работает именно без группового перепроведения?
Разве не достаточно что на данный момент времени все документы проведены?
32 iG4nG
 
06.02.13
13:17
(31) извиняюсь, если я написал где-то "перепроведение документов", но вроде этого нигде не писал. запускается не перепроведение документов, а проведение. документы были созданы с утра,в обед попросили провести, чтобы показать отчеты. сразу проводить документы нельзя без подтверждения людьми
33 Повелитель
 
06.02.13
13:20
(32) а вон оно как, да интересная у вас схема.
34 ICWiner
 
06.02.13
13:22
У вас партионка или РАУЗ?
35 iG4nG
 
06.02.13
13:23
(33) ну вот как то так
36 iG4nG
 
06.02.13
13:24
(34) расшифруете отвечу :)
37 krbIso
 
06.02.13
13:24
это называется "ожидание на блокировках"
и это не ошибка если оно не из за избыточных блокировок.
38 Повелитель
 
06.02.13
13:25
Ну мне все таки интересно тогда.
Если к примеру выделить одного человека, который будет по одному документу открывать и проводить. То наверняка он не будет другим пользователям мешать.

Так вот и сымитируйте программно работу этого одного пользователя. Думаю как раз с помощью пауз это можно реализовать.
39 ICWiner
 
06.02.13
13:25
У вас ведется учет по партиям или включена расширенная аналитика учета затрат? При использовании РАУЗ все проводится намного быстрее, чем при партионном учете. Только вот, возможно, придется переделывать отчеты, пересчитывать себестоимость и т.д.
40 ICWiner
 
06.02.13
13:27
+ к (38) тоже верно. Обработку группового проведения подправте. Типа провелся документ - подождите 10 секунд, еще один провелся - еще 10 секунд. И никаких транзакций.
41 iG4nG
 
06.02.13
13:27
(38) как раз этим занимается пару человек, когда потребует руководство, без требования руководства они ничего не проводят, так как документы не подтверждены руководством
42 iG4nG
 
06.02.13
13:28
(39) учет по партиям...
43 Vitamax3
 
06.02.13
13:32
была даже обработка внешняя, где можно было выставлять время задержки, кажется называлась "Фоновое проведение документов"
как- то так
44 Vitamax3
 
06.02.13
13:34
45 iG4nG
 
06.02.13
13:35
(43) то есть при этом документы у меня будут проводиться дольше этой обработкой, но люди смогут работать?
46 Vitamax3
 
06.02.13
13:36
так точно
47 Serg_1960
 
06.02.13
14:14
Достаточно 2-3 секундной паузы, чтобы перепроведение документов стало "незаметным" для пользователей.

(имхо) Перепроведение документов во время работы пользователей, иногда, обесценивает оба эти занятия. Например, перепроведение и расчет себестоимости - это, как бы, эээ... бесполезное времяпровождение :)
AdBlock убивает бесплатный контент. 1Сергей