| 
    
            
         
         | 
    
    
  | 
Скорость записи в регистр бухгалтерии | ☑ | ||
|---|---|---|---|---|
| 
    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 
 | 
||||
| 
    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) Спасибо тебе, добрый человек. Попробую настроить - у меня немного иначе сейчас выставлено.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |