Имя: Пароль:
1C
1С v8
Скорость записи в регистр бухгалтерии
0 Eugene_life
 
23.04.14
16:45
Всем доброго дня. Знаю, что часто 1С-ники любят разобраться в вопросе досконально. Очень рассчитываю на хороший совет. Есть бухгалтерский документ, содержащий 230 тыс проводок. При попытке записать все проводки разом, я получаю "нехватку памяти" (SQL серверная база, SQL 2008, Сервер 1С 32 разрядный). Потому сейчас добавляю наборами по 1000 записей (прямо в регистр, без чтения). Но уж очень долго это длится (несколько часов), причем 76% времени - запись в регистр. Был вариант отключения итогов с последующим включением - но включение итогов длится тоже долго (около 3х часов). Может, кто-то поделится своим опытом по оптимизации похожей ситуации?
1 kiruha
 
23.04.14
16:46
Поменяйте подсистему жестких дисков
2 Eugene_life
 
23.04.14
16:47
(1) 5й рейд на SSD
3 kiruha
 
23.04.14
16:47
И записывать можно по 20 тыщ
4 Господин ПЖ
 
23.04.14
16:48
писать порциями в транззакции начать/зафиксировать
5 Maxus43
 
23.04.14
16:49
(2) 10-ку ж лучше бы

делай (4), порции не по 1000, а тыщ по 5-10 делай
6 kiruha
 
23.04.14
16:50
(4)
Если док - там и так уже транзакция
7 Eugene_life
 
23.04.14
16:50
(4) А это поможет чем-то по скорости?
8 Eugene_life
 
23.04.14
16:51
(3),(5) Понял, попробую. А вообще, в принципе, так и должно быть, что медленная запись идет такая? Ну, полчаса - еще туда-сюда. Но 2 и более часа!
9 Господин ПЖ
 
23.04.14
16:52
(7) была похожая ситуа - 800 000 в один РН и 800 000 в другой в предалах одного регистратора - вроде помогло...

но в итоге вендоры поменяли алгоритм чтобы было меньше движений
10 kiruha
 
23.04.14
16:52
А по 1 тыще как записываешь - в разных транзакциях или как ?
11 Maxus43
 
23.04.14
16:53
кстати да... это всё уже в транзакции проведения
12 Господин ПЖ
 
23.04.14
16:53
(8) РБ вещь не быстрая
13 kiruha
 
23.04.14
16:53
Если в одной - там сервер накапливает информацию для возможности отката - не гуд
14 Eugene_life
 
23.04.14
16:53
(10) пишу в одной - "все или ничего"
15 Господин ПЖ
 
23.04.14
16:54
(11) пусть попробует. хуже не станет
16 Eugene_life
 
23.04.14
16:55
(15) вопрос с изменением таблицы итогов - она пересчитывается при фиксации транзакции, или при добавлении набора записей?
Я так понимаю, что самое медленное тут - именно пересчет итогов
17 kiruha
 
23.04.14
16:57
(14)
Ну так разбей по 20 тыщ - и записывай в одной транзакции.
Пометки ставь - что записано. Потом в следующей порции, все можно в регламентном на сервере
18 Maxus43
 
23.04.14
16:57
(16) при фиксации
19 Eugene_life
 
23.04.14
16:58
Ок, спасибо за идею. Попробую писать в маленьких транзакциях по 20 тыс записей.
20 Aleksey
 
23.04.14
16:59
Переходите на 8.2, просто в 8.3.4 они "оптимизировали" механизм записи регистров бухгалтерии и из-за этого тормозит сильно запись
21 Eugene_life
 
23.04.14
17:00
(20) а это и есть 8.2 :)
22 Aleksey
 
23.04.14
17:01
(21) Ну тогда попробуй 8.3.4 :)
23 Eugene_life
 
23.04.14
17:01
(20) + просто поскольку запись в обработке проведения - то и так и сяк это на сервере идет.
24 kiruha
 
23.04.14
17:01
(16)
Ну у Вас же скорее всего документ реальным временем -вряд ли он год назад - поэтом тут не пересчет итогов а именно запись. Мы боролись усилением дисковой подсистемы.

Ну пересчет можно ускорить если порции выбирать по "ключевым" измерениям входящим в индекс, а не просто как попало
25 kiruha
 
23.04.14
17:02
например по одной организации
26 Aleksey
 
23.04.14
17:02
я точно не помню но толи они оптимизировали запись большого набора данных в ущерб маленьких, толи наоборот маленькие пишут быстро, а вот большой набор - тормозит. Но помоему всё таки первый вариант
27 Eugene_life
 
23.04.14
17:02
(24) у меня тоже "роятся" идеи оптимизировать как-то таблицу, которая пишется. Но оптимизировать порции не вижу смысла, а целая таблица занимает > 3 Гб в оперативке. тоже ворочается еле-еле.
28 Eugene_life
 
23.04.14
17:04
(24)+ Документ проводится как раз в 90% случаев "задним числом" - в прошлом месяце.
29 Господин ПЖ
 
23.04.14
17:08
>просто поскольку запись в обработке проведения - то и так и сяк это на сервере идет.

у "пациентов" на упп падал клиент... документ успешно записывался только на 64 серваке, клиент отъедал 3,5 гб.
30 Господин ПЖ
 
23.04.14
17:09
(29) + соответственно на компе буха с 32бит все падало, документ проводили на сервере через RDP
31 Зойч
 
23.04.14
17:09
может попробовать итоги сдвинуть до документа, заблокировать весь регистр бухгалтерии доолнительно
32 Eugene_life
 
23.04.14
17:10
(29) Я, чтобы уберечься от нехватки памяти, захожу клиентом на сам сервер (где и Сервер 1С, и SQL) - и запускаю оттуда. Там 32 Гб оперативки, с памятью все нормально хотя бы. Но, вероятно, придется искать возможность ставить 64x сервер.
33 Господин ПЖ
 
23.04.14
17:11
(30) + сервер 1с был 32...

самое смешное - франь (он же вендор решения) сразу начал бубнить пациентам что надо срочно купить сервер 1с на 64
34 Eugene_life
 
23.04.14
17:11
(31) документ-то проведется быстро, но итоги потом будут считаться вечность :(
35 Eugene_life
 
23.04.14
17:12
(33) я вот тоже сомневаюсь, что это решит ситуацию. Потратить деньги легко. Но с меня же трясти будут результат.
36 Господин ПЖ
 
23.04.14
17:12
(32) ты читаешь плохо... если написано через анус сервер не спасет...
37 Aleksey
 
23.04.14
17:15
(35) поставь эмуль протиестируй, и прими решение
38 Eugene_life
 
23.04.14
17:16
(36) Я понимаю еще скорость чтения - она может зависеть от оптимальности запроса и т.п. Но скорость записи-то готовой таблицы.. как она может зависеть от "криворукости"?
39 Eugene_life
 
23.04.14
17:16
(37) эмуль не работает с 64
40 ДенисЧ
 
23.04.14
17:17
(39) оппа....
41 Господин ПЖ
 
23.04.14
17:18
(39) "хороший" работает
42 Зойч
 
23.04.14
17:18
(34) итоги передвигать по ночам
43 kiruha
 
23.04.14
17:20
А там журнал транзакций и прочее надеюсь по разным дискам в рейде ?
44 Господин ПЖ
 
23.04.14
17:21
какой процесс падает? клиент или rphost?
45 Eugene_life
 
23.04.14
17:25
(44) rphost
46 Eugene_life
 
23.04.14
17:26
(43) нет, все на одном диске. ОС отдельно стоит, а все касательно баз - на одном.
47 Eugene_life
 
23.04.14
17:26
(42) а днем как оборотку смотреть?
48 Eugene_life
 
23.04.14
17:27
(49),(41) пожалуй, не стоит эту тему тут развивать :)
49 Зойч
 
23.04.14
17:27
(42) не отключение итогов, а период рассчитанных итогов
50 Eugene_life
 
23.04.14
17:29
(49) Я тут, конечно, не спец. Но мне кажется, что первый же проведенный документ сдвинет эти итоги обратно.
51 Господин ПЖ
 
23.04.14
17:47
а сама винда на сервере какая? 64?

можно попробовать еще процессов наплодить рабочих, чтобы все "в одну лунку не совали"
52 kiruha
 
23.04.14
17:51
(46)
Настрой по рекомендациям
http://infostart.ru/public/65955/
53 Eugene_life
 
23.04.14
17:51
(51) Винда 64, процессов я "наплодил" 4. Сейчас посмотрю, что будет при записи транзакциями по 20 тыс записей. Может, и результат будет нормальный
54 kiruha
 
23.04.14
17:51
Там 452 плюса
55 Eugene_life
 
23.04.14
17:53
(52) Спасибо тебе, добрый человек. Попробую настроить - у меня немного иначе сейчас выставлено.
Основная теорема систематики: Новые системы плодят новые проблемы.