Оптимизация проведения документов по регистрам

20.09.11

База данных - HighLoad оптимизация

Оптимизация проведения документа по регистрам. Увеличение производительности перепроведения базы в 2-3 раза.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
пример использования механизма (1 документ)
.dt 251,73Kb
57 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Механизм основан на том, что документ в момент перепроведения проверяет модифицированность движений по регистрам и, если движения изменились, то перезаписывает движения по этому регистру.

Данный механизм используется на рабочей базе. Производительность проведения некоторых документов увеличена в 3 раза

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

HighLoad оптимизация Программист 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Использование оператора «В» для полей или данных составного типа (например, Регистратор) может приводить к неочевидным проблемам.

10.11.2025    7656    ivanov660    48    

52

HighLoad оптимизация Программист 1С:Предприятие 8 1C:ERP Бесплатно (free)

Приведем примеры использования различных в динамических списках и посмотрим, почему это плохо.

18.02.2025    9710    ivanov660    39    

61

HighLoad оптимизация Технологический журнал Системный администратор Программист Бесплатно (free)

Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.

24.06.2024    12212    ivanov660    13    

64

HighLoad оптимизация Программист 1С:Предприятие 8 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    18692    Evg-Lylyk    73    

46

HighLoad оптимизация Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    9147    spyke    29    

54

HighLoad оптимизация Программист 1С:Предприятие 8 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    12643    vasilev2015    22    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. noprogrammer 243 20.09.11 14:31 Сейчас в теме
не совсем понятно в чем выигрыш.... неужели "записать" уже подготовленные движения дольше чем:
1.Прочитать все движения до проведения
2.сравнить все движения фактически после проведения (с тем что было)
?
2. alexk-is 6550 20.09.11 14:44 Сейчас в теме
(1) Это как раз просто.
Если в движениях нет разницы, то их можно не записывать. Соответственно ""записать" уже подготовленные движения" дольше чем их не записывать совсем. :)
3. noprogrammer 243 20.09.11 14:48 Сейчас в теме
(2)
Если в движениях нет разницы, то их можно не записывать. Соответственно ""записать" уже подготовленные движения" дольше чем их не записывать совсем. :)


Время затраченное на чтение движений "до", сравнение движений "после" как мне кажется большее чем время на "запись" уже готовых движений.
+ не совсем понятно, что происходит с "удалением движений" перед проведением (такое ощущение, что они вообще не трогаются)
4. sebe 100 20.09.11 14:57 Сейчас в теме
(3) время на запись больше чем время сравнения (опытным путем). "Удаление движения" это при отмене проведения.
5. sebe 100 20.09.11 15:00 Сейчас в теме
(3) если логически подумать то на жесткий диск запись идет медленее чем чтение, а расчет сравнения двух таблиц вообще почти моментально по сравнению с записью и чтением.
6. alexk-is 6550 20.09.11 15:03 Сейчас в теме
(3) Можно выделить 3 режима проведения документов:
1. Проведение новых
2. Проведение проведенных без внесения изменений
3. Проведение измененных проведенных документов

При "проведении новых" сравнивать нечего, поэтому для них ничего не меняется
При "проведении проведенных без внесения изменений" только сравниваем и нечего не записываем
При "проведении измененных проведенных документов" конечно же пролетаем, т.к. записи движений добавляется ещё и сравнение

При массовом проведении документов большинство из них попадают в категорию "проведение проведенных без внесения изменений". Отсюда и ускорение
7. sebe 100 20.09.11 15:08 Сейчас в теме
(6) так и есть что при перепроведении месяца производительность увеличивается в 2-3 раза, т.к. основная масса документов не меняет движений.
8. hogik 446 20.09.11 16:21 Сейчас в теме
(0)
Идея очевидная. Странно, что в "штатных" средствах делается иначе. ;-)
По моему опыту работы с различными ИС - только в продуктах 1С делается "тупое" обновления не измененных данных без предварительного анализа.
9. sebe 100 20.09.11 16:35 Сейчас в теме
(8) Былобы хорошо чтоб сама платформа делала такую проверку. может когда нибудь реализуют.
10. pumbaE 20.09.11 16:55 Сейчас в теме
(8) даже хуже, если посмотреть как делают расчет зарплатных документов... (любой расчет очищает движения, делает заново рассчитывает и все ... отказаться от нового расчета невозможно).
11. anig99 2864 20.09.11 22:46 Сейчас в теме
(0) (9)
http://www.sibeaz.ru/ver8111.shtml
Прочее
Ускорено перепроведение документов, выполняющих движения по регистру бухгалтерии, в тех случаях, когда не используется автоматическое удаление движений и не изменяются движения документа. Теперь, если новый набор записей совпадает со старым набором записей, сохраненным в базе данных, перезапись набора записей регистра бухгалтерии в базе данных не происходит.

Где в следующих редакциях распространили на другие регистры.

В 8.2 появилась возможность самому устанавливать режим записи.

В принципе, не работает, если предварительно очищать и записывать движения.

Так что пока "-" за незнание мат.части. Даже, если Ваше решение лучше поведения платформы при ПРАВИЛЬНОЙ работе с движениями в режиме проверки модифицированности, то не раскрыто почему это так или почему это не работает в типовых или у Вас до оптимизации.
Хотя посмотрев код не вижу чего-то нового, кроме лишней процедуры на доп.проверку модифицированности. По-моему достаточно просто не очищать движения перед записью и платформа сама сравнит движения.

Покажите код записи движений ДО Вашей оптимизации. Что-то было не так, если механизм платформы не работал.
Прикрепленные файлы:
pumbaE; Evg-Lylyk; Borisych; +3 Ответить
12. aspirator23 342 21.09.11 22:02 Сейчас в теме
1с опубликовала год, а то и два назад технологию проведения документов как они это называют "по-новому". Описано в нескольких книжках и даже на сайте 1с в открытой части. Общее описание этих правил не бог весть какое сложное, но там более комплексно рассмотрено "правильное" проведение документов.
Подразумевается перевод полностью или частично на управляемое проведение. То что описано в данной публикации - это только часть этой технологии. Не в обиду автору публикации.
13. dkprim 5 22.09.11 14:31 Сейчас в теме
не смотря на все минусы, озвученные здесь - публикация полезная. спасибо :)
14. almas 264 23.09.11 09:08 Сейчас в теме
Спасибо, поднял интересную тему.
15. RustIG 1949 28.10.11 03:03 Сейчас в теме
(0) просим код вместо картинки и двух предложений в студию ! :)
я полагаю, пока 1С развивает эту тему в 8.2
ты эту тему развернешь на 8.1 :)
Для отправки сообщения требуется регистрация/авторизация