|
Оптимизация записи/очистки регистра сведений (РС) СоздатьНаборЗаписей
| ☑ |
0
ИС-2
naïve
18.05.23
✎
13:07
|
Есть такой код для очистки связанного с документом регистра.
Т.к в ТЧ может быть несколько тысяч строк, то
НЗ.Прочитать(); занимает 4 % времени
нз.записать(); занимает 14% времени
Проверок при записи регистров нет.
Как можно ускорить запись регистра сведений?
Для Каждого Стр из Источник.товары Цикл
Ключ = Новый Структура("Документ,Номенклатура,ХарактеристикаНоменклатуры,СерияНоменклатуры");
ЗаполнитьЗначенияСвойств(Ключ,Стр);
НЗ = РегистрыСведений.мк_ПогрузкаПачек.СоздатьНаборЗаписей();
НЗ.Отбор.Документ.Установить(Источник.ДокументПередачи);
НЗ.Отбор.Номенклатура.Установить(Стр.Номенклатура);
НЗ.Отбор.ХарактеристикаНоменклатуры.Установить(Стр.ХарактеристикаНоменклатуры);
НЗ.Отбор.СерияНоменклатуры.Установить(Стр.СерияНоменклатуры);
НЗ.Прочитать();
нз.Очистить();
нз.записать();
КонецЦикла;
|
|
1
RomanYS
18.05.23
✎
13:09
|
вот это лишнее
НЗ.Прочитать();
нз.Очистить();
|
|
2
asady
18.05.23
✎
13:09
|
(0) имхо прочитать()+Очистить() - лишнее
|
|
3
butterbean
18.05.23
✎
13:09
|
не надо Прочитать и Очистить
|
|
4
RomanYS
18.05.23
✎
13:10
|
Если удаляются все записи по Источник.ДокументПередачи, то удалять одним набором без цикла
|
|
5
asady
18.05.23
✎
13:11
|
(0) и ключ зачем-то создаешь и заполняеь
|
|
6
OldCondom
18.05.23
✎
13:11
|
+ к (4) также отбор по документу за цикл вынести
Это до цикла:
НЗ = РегистрыСведений.мк_ПогрузкаПачек.СоздатьНаборЗаписей();
НЗ.Отбор.Документ.Установить(Источник.ДокументПередачи);
|
|
7
RomanYS
18.05.23
✎
13:12
|
(4) а если НЕ все, то читаем набор по Отбор.Документ, удаляем из него лишние записи и записываем... один раз
|
|
8
ИС-2
naïve
18.05.23
✎
15:05
|
(1) да, правы это не надо
(4) нет, там могут и быть не все записи для удаления
Но больше вопрос был в том "почему на запись регистра к коотрому нет отбращений и проверок при записи уходит так много времени"
|
|
9
RomanYS
18.05.23
✎
15:50
|
(8) как много? Каждая запись это обращение к БД и куча накладных расходов.
Попробуй менеджер записи, хотя быстрее как раз писать одним набором как в (7)
|
|
10
H A D G E H O G s
18.05.23
✎
17:34
|
ОбменДанными.Загрузка
|
|