Имя: Пароль:
1C
1С v8
В обработке с транзакцией и без неё время проведения документов одинаковое....
0 minsk1s
 
28.06.19
12:03
смысл конструкции такой:

Если ИспользоватьТранзакцию=Истина Тогда
        НачатьТранзакцию();
КонецЕсли;

МногоКодаСРазниымиУловиями...
ЗапросПоРегистру...


Пока ВыборкаДетали.Следующий() Цикл
                        
                        элементыФормы.Индикатор1.Значение=тек; тек=тек+1;

                        ВыбДок=ВыборкаДетали.Регистратор.ПолучитьОбъект();
                        
                        Попытка
                            Состояние("проведение..."+сокрЛП(ВыборкаДетали.Регистратор));
                            ВыбДок.Записать(РежимЗаписиДокумента.Проведение);
                                        
                        
                        Исключение
                            Состояние("Невозможно провести "+сокрЛП(ВыборкаДетали.Регистратор), СтатусСообщения.Важное);
                        КонецПопытки;
                        
                    КонецЦикла;


//Сообщить(ТранзакцияАктивна());
Если ИспользоватьТранзакцию=Истина Тогда
        ЗафиксироватьТранзакцию();
КонецЕсли;


Вот что по времени получается:

старт с транзакцией = 28.06.2019 11:55:46
финиш с транзакцией = 28.06.2019 11:58:53
разница с транзакцией = 187 секунд

старт без транзакции = 28.06.2019 11:59:51
финиш без транзакции = 28.06.2019 12:02:59
разница без транзакции = 188 секунд


что-то туплю... почему разницы нет...
1 Cyberhawk
 
28.06.19
12:04
Неправильно у тебя исключение внутри транзакции сделано. Словишь ошибку "В данной транзакции уже происходили ошибки" с таким подходом.
2 Cyberhawk
 
28.06.19
12:05
А разницу в файловой базе пади замеряешь
3 Fragster
 
гуру
28.06.19
12:05
транзакция нужна не для ускорения, если что
4 minsk1s
 
28.06.19
12:06
Cyberhawk, ты бог)) точно. не ту копию стартонул))))
5 minsk1s
 
28.06.19
12:07
Fragster, если что для ускорения тоже.
6 palsergeich
 
28.06.19
12:15
А элементов сколько?
Транзакционный кеш не бесплатный.
Выше какого то числа элементов с общей транзакцией даже больше будет.
Обычно сбрасывают каждые 1000.
7 Cyberhawk
 
28.06.19
12:17
(3) Сайд эффект такой. Даже в обработке обмена КД2 флажок есть :)
8 Fragster
 
гуру
02.07.19
18:50
(5) для ускорения обеспечивается неблокирующее параллельное проведение и тогда получаем ускорение на порядок (с полной утилизацией ресурсов серверов) вместо жалких процентов ценою помех другим пользователям.
9 hhhh
 
02.07.19
21:41
(5) если до 100 документов в транзакции будет проигрыш, где-то около 1000 выигрыш, если больше, например тысяч 20 документов в транзакции опять проигрыш.
10 H A D G E H O G s
 
02.07.19
21:43
Лучше 1 CommitTransaction, чем 10000 Commit-ов, которые прищемят даже быстрый ssd