#0
by МуМу
Дано: Есть УПП с партионкой. Нужно восстановить последовательность документов(путем перепроведения) с партионным учетом с целью перерасчета правильной себестоимости. Предположим серверные настройки оптимальные, сервер очень мощный. Линейное ускорение проведения документов, за счет оптимизации запросов, возможно не более чем на 15%. Стоит цель ускорить время проведения в 3-5 раз. Каким образом можно это сделать и от чего это зависит?
#0
by МуМу
Дано: Есть УПП с партионкой. Нужно восстановить последовательность документов(путем перепроведения) с партионным учетом с целью перерасчета правильной себестоимости. Предположим серверные настройки оптимальные, сервер очень мощный. Линейное ускорение проведения документов, за счет оптимизации запросов, возможно не более чем на 15%. Стоит цель ускорить время проведения в 3-5 раз. Каким образом можно это сделать и от чего это зависит?
#0
by МуМу
Дано: Есть УПП с партионкой. Нужно восстановить последовательность документов(путем перепроведения) с партионным учетом с целью перерасчета правильной себестоимости. Предположим серверные настройки оптимальные, сервер очень мощный. Линейное ускорение проведения документов, за счет оптимизации запросов, возможно не более чем на 15%. Стоит цель ускорить время проведения в 3-5 раз. Каким образом можно это сделать и от чего это зависит?
#3
by МуМу
Ага,очень быстрая дисковая подсистема и многопроцессорный сервак(предположим 8-16 процессоров). Ну и сервер приложений такой же.
#4
by МуМу
Не верно. При доп. вложении равной стоимость существующего сервера удастся ускорить только на 15-20 процентов.
#6
by asp
а теперь моя практика: вместо стоечного сервака HP куплен десктоп за 40% цены сервера. последовательность на нем восстанавливается в три раза быстрее.
#7
by МуМу
Данный вопрос родился в контексте последней дискуссии с коллегами. Выяснилось что подавляющее большинство ничего не знает на тему параллельных вычислений, об архитектуре современных серверов. Это верно.
#9
by МихаилМ
фоновые задания + отложенный расчет итогов. + изменение алгоритмов (выборочное перепроведение, запись движений отклонений ...)
#11
by МуМу
Для каждой конкретной задачи хорошо свое железо. В любом случае для данной задачи будет максимальное ускорение 50 % , либо это будет означать что предыдущий сервак был совсем стареньким. Для современных серваков замена как я уже писал раньше будет 15% и расти потом нелинейно в соответсвии к затратам. Напомню , я говорю о ускорении в 3-5 раз.
#12
by shuhard
[Данный вопрос родился в контексте последней дискуссии с коллегами. Выяснилось что подавляющее большинство ничего не знает на тему параллельных вычислений, об архитектуре современных серверов. ] ужо.с срочно всех на семинары
#13
by МуМу
Данную задачу рассматриваем как регламентную которую нужно выполнить в конце месяца. То есть надо перепровести все документы.
#14
by МихаилМ
не описаны условия задачи, можно менять алгоритмы проведения. можно использовать, прямые запросы, можно ли проводить расчеты в отдельной копии, не в разделенном режиме и результаты загружать .
#15
by МуМу
Этого я не говорил и рекламы семинара в этой ветке не будет. Мне интересно предложит ли кто нибудь более менее точную концепцию реализации. Задача достаточно актуальная. В конце ветки я обязательно отвечу на этот вопрос.
#17
by МуМу
. Алгоритм проведения менять нельзя. Прямые запросы использовать можно(даст эффект минимальный 10-15%) Расчеты в отдельной копии можно делать.Только что это даст? Важна же хронология документов, один документ влияет на другой.(на себестоимость)
#18
by Aleksey
Ну почему расчет в файловой версии плюс выгрузка/загрузка в скуль иногда быстрее на порядок, чем просто расчет на скуле
#20
by Aleksey
А зачем пихать всю базу, если мы проводим 1 месяц. Конечно если даже и месяц туда не влазит...
#22
by Aleksey
Да, ввод начальных остатков. Зачем тебе движения за старые месяца, если по сути тебе нужны только итоги?
#24
by Aleksey
не думаю, что кроме тебя кто-то активно здесь занимался этим вопросом, поэтому рассказывай очень интересно послушать
#25
by Ёпрст
отключить итоги, весь пересчет итогов делать в своих временных табличках во время перепроведения. Разве что.
#26
by Aleksey
Э а каким боком тут ФИФО? По твоему когда программа перепроводит документы за март она берет движения за прошлый год? Или все таки остатки на документ?
#28
by Aleksey
По сути не перерасчет итогов, а весь расчет движения и писать движения уже самостоятельно. Плюс добавим сюда запись только измененных движений (обычно расчет происходит быстрее чем запись). Т.е. движения не поменялись, значит не переписываем их, а оставляем старые В теории ускорения должно быть достигнуто за счет отказа перерасчета итогов на каждый измененый документ (итоги в конце считаются) ну и меньше количеств записей документов (чем меньше изменений, тем быстрее перепроводка)
#30
by Aleksey
Там немного по дурацки сделано. По сути как такового ТА нет, а программа смотрит, есть движения после этого документа, значит нужно рассчитывать итоги - нет движения - берем на ТА. Т.е. ТА нельзя двинуть взад, можно только очистить движения впереди, тогда будет расчет на ТА
#31
by Ёпрст
ну да.. Вот еслиб ешще и период хранения останков был бы короче, 5 дней к примеру, а не месяц - еще быстрее было бы проведение, в разы.
#33
by Aleksey
Я бы не стал так говорить на автора, просто ему интересно послушать мнения других, но поверь знаний его в этом вопросе (особенно по 7-ке) поболее чем у многих вместе взятых
#35
by azernot
Возврат с указанным документом партии никогда не проводил? Там-то как раз нужны движения изначального документа...
#36
by shuhard
компетенция ТС сомнений не вызывает, формат топик прикольный, ответ знаю, но не скажу. в итоге флюд про сферического коня в вакууме
#39
by iamnub
"Мне интересно предложит ли кто нибудь более менее точную концепцию реализации." Приз-то будет?
#41
by azernot
Как показывает практика 80% необходимости восстановления последовательности связано с изменением сумм (без изменения собсвтенно количества и момента времени документов), соответсвенно в большинстве случаев достаточно пересчитать суммы, без полного перепроведения документов. Убыстрял восстановление последовательности методом отдельного пересчёта запросами и прямой записи. По сути метода сводилось к следующему: 1. Проверяем корректность распределения по партиям (упрощённо - в случае ФИФО если есть остаток по более ренней парти с учётом всех допустимых статусов, отборов и т.п. - значит распределение некорректно и документ нуждается в перепроведении). На этом этапе полностью забиваем на себестоимость, нас интересует только корректность списания количества по партиям. Повторяем п.1 до тех пор пока в интересуемом периоде все партии корректно не распределятся. 2. Восстанавливаем прямой записью суммы партий и связанных движений. Прирост скорости колоссальный. Во-первых я в п.1 перепровожу только документы с реально некорректными партиями, во-вторых в п.2 я восстанавливаю суммы реально только там, где это необходимо. В идеале бы конечно ещё и в п.1 менять партии без перепровдения, но у меня как-то руки не дошли.
#42
by wPa
Это не панацея, поскольку не дает гарантии, что будут исправлены оставшиеся 20%, связанные с переносом докумнтов со пересписанием списанных партий, вводом новых партий без их списания по методике. Это лиш метод исправления заранее известной ошибки - операция над больным - конечное решение, а не полное лечение. Убыстрение восстановления партий должно быть связано только с восстановлением партий, но к сожалению движения по другим регистрам по методике 1С завязано на партиях. Развязать их, вытащить из одной транзакции - вот имхо путь к решению проблемы.
#43
by azernot
Ты не прав, 20% - лечится пунктом 1, когда восстанавливается корректность списания по партиям (в т.ч. и наличие отрицательного остатка после регистратора по партиям - симптом некорректности). Двжиения других регистров (я их называю связанные движения) я также корректирую в п.2. Развязать их нельзя, информация в связанных регистрах как раз и берётся из партий. Развязать их - значит организовать некие регламентные процедуры (типа сформировать проводки только в конце месяца)..
#45
by МуМу
В контексте этого подхода не хочу спорить потому как долго разбираться чего там скоряется в 12-ть раз. Предположим для простоты что запросы по партионке реализованы хранимкой на сервере. Как в этом случае можно реализовать данную задачу?
#46
by iamnub
Я твоего поста вообще не понял. Ты просил "более менее точную концепцию реализации." Я показал решение - работает сейчас. Ты говоришь - что тебе долго разбираться - чего там ускоряется. Вводишь какие-то новые условия, запросы, хранимки... Лучше я тебе вопрос задам - когда коту делать нечего - он чем занимается?
#47
by МуМу
Это немного другой подход. Для реализации минимальной задержки актуальной себестоимости применялся подход в котором логировались изменения задним числом. Затем пересчитывались только те документы и только те движения документов на которые они влияли. В данной концепции будем считать что поменялось все и надо все перепровести.
#50
by МуМу
Ладно , почитаю. Условие основное следующее. Изменение кода не допускается, точнее допускается добавить 10 строк кода в существующий код. Это важно с точки зрения того что данное решение не должно привести к изменению логики существующей системы.
#53
by MaxS
Подходит ли вариант с распределенной базой? Полный обмен. В соседней базе никому не мешая, в монопольном режиме перепроводится всё, что нужно, потом обменом попадает в рабочую базу. Именно под эту отдельную базу можно подобрать соответствующее железо. А для рабочей базы, где работают много пользователей подобрано другое железо под соответствующие задачи...
#54
by МуМу
Данное решение имеет право на существование но имеет ряд минусов. В текущей базе нужно закрывать определенный период. Потому как только с даты предыдущего закрытого периода по дату текущего закрытого периода имеет смысл перепроводить документы.(иначе любое изменение задним числом приводит к возникновению подобной задачи повторно) Затем необходимо реализовывать механизмы обмена. С другой стороны если есть возможность период закрывать, тогда лучше ночью делать пересчет по дату закрытого периода и не парится с обменами.
#55
by Ёпрст
это, а сколько сейчас по времени занимает примерно проведение одного документа в "заднем" числе ? ну, строк на 100 в табличной части.. ? Так, для справки.
#59
by Ёпрст
профит глядеть.. у нас после проведения накладной смотрят профит в самом документе.. от этого прикидывают скидку/наценку.. Профитная система оплаты, понимашь.
#60
by Mikeware
Не текущего - вчерашнего, позавчерашнего. Но в течение дня могут править и "месяц взад", и даже глубже...
#61
by shuhard
бывает и прикольней, у меня каждую ночь в УПП документы перепроводятся за открытый период
#62
by Mikeware
нет, этого нет. более того, менеджеры не с реализациями работают. И реализации массово появляются начиная с 19 часов..
#63
by Aleksey
мои профит видят уже в сделки, а руководство вообще периодически хочет видеть предварительный анализ продаж, который работает не по реализациям, а по заявкам, т.е. по резервам :(
#64
by Ёпрст
ну так, у кого сколько проводится реализация ? Закинул демку упп в скуль 2008, на серваке 24 ядра, 24 гига оперативы, всё на 10 рейде Время проведения одного документа в среднем 18 секунд. Это нормально ?
#65
by Aleksey
нет не подходит. Я тут давеча за два года перепровел почку бухии, так потом 2 дня ждал когда она в центр загрузиться, так и не дождался. Пришлось убить регистрацию. Такие большие объемы потом хрен куда загрузишь, так что теперь стараюсь больше одного квартала за раз не перепроводить
#66
by ДенисЧ
типовая - 100 позиций РТиУ, 4 месяца назад, всего четыре месяца в базе - 50 секунд. После моих шаловливых - та же накладная 7-9 секунд...
#69
by Aleksey
Вот если бы типовой интерактивный обмен мог грузить порциями, тогда да. А так ... p.s. хотя вроде бы фоновый так может, но типовой фоновый только с УТ
#70
by ДенисЧ
угу. Расчёт себестоимости за месяц (30 000 ОПзС) - 17 часов. После шаловливых - около 8. Тех же часов...
#72
by Aleksey
в заявке да (тупо скопировл из механизма проведения механизм расчета партий, т.е. делаю "виртуально проведение")
#76
by Aleksey
Там просто все это делается в одной транзакции, плюс в УРИБ обмене если изменились движения, то программа регистрирует эти изменения для ВСЕХ почек.
#78
by Aleksey
Нет партии не хранятся. Просто показывает результат, который был бы если бы сейчас провели реализацию из этой заявки. Т.е. понятно, что когда появиться реализация партия может быть другой (могут, но не обязаны быть другими), но оценит примерный профит это позволяет. Впрочем аналогичное может произойти и с проведенной реализацией (изменили время, изменили приход). Так что даже если мы зафиксируем партии, то это не гарантирует нам аналогичный профит в реализации, а раз так, то трудозатраты по фиксации, себя не окупают, и поэтому смысла фиксировать их нет
#81
by Новиков
А как же вы счет-фактуру с непроведенного рту печатаете? Проводок же не будет по ГТД?
#83
by Mikeware
тут разницу между строковыми и числовыми переменными осилить не могут, а ты про "параллельные вычисления" задвигаешь... :-)
#86
by Mikeware
ну в принципе, почему бы и нет. а после - пересчет по взаиморасчетам. Только будет ли быстрее?
#87
by Aleksey
Была идея засунуть в последовательность измерение товар, и перепроводить конкретно по кривому товару, а не все документы
#90
by МуМу
Провести нужно все. Ну если уж совсем вообщем - да. Нужно заставить работать все процессора сервера.Заставить проводить параллельно максимальное количество документов в единицу времени и при этом не нарушать последовательность. Вопрос теперь, как концептуально это реализовать?
#91
by МуМу
Если изменились несколько позиций задним числом то действительно существуют другие более эффективные способы. В данном случае это не тот вариант. Считаем что поменялось все.
#94
by МуМу
Мне интересно, есть ли вообще понимание как подобное может быть возможным.(эта ветка мне интересна для анализа статей, которые я сейчас дописываю) Концепцию я здесь в любом случае расскажу чуть позже.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v8 строка подключения V8.Connect
- Волшебнику и всем кто поможет по теме "v8 УРБД на v8 за четыре шага"
- v8: при v8 = Новый COMОбъект("V8.Application") дает ошибку ..
- v8: Не могу подключиться из V8 к V8
- v8: есть ли аналоги openconf для 1с v8
- v8: Как удалить 1С v8 ?
- v8: Резервы по сериям в УПП? / УПП 8.0
- v8: УПП Проблема выбора: сервер для УПП
- v8: Перенос справочников и остатков из 8.1 УПП 1.2 в 8.2 УПП 1.3
В этой группе 1С
- Редактирование движений в документе закрытие месяца
- Почему могут не выгружаться документы? УТ - БП
- добавить поле во внешней печатной форме
- ОСВ по счету, добавить МОЛ по основным средствам
- ЗУП Расчетные листки
- 1С УСН 7.7 - учёт себестоимости при продаже по средней - возможно ?
- Консоль запросов для 1С8.2 (не возможно подключить MSScriptControl.ScriptControl
- Списание на затраты при передаче материалов в эксплуатацию
- Работа с флажками в ТЗ на форме
- Выгрузка данных из ЗиК 7.7 в ЗУП 2.5 на платформе 8.2
- почему в ут 10 себестоимость товара только в валюте упр. учета
- v8: ЗУП Почему в номере на печать не убираются префиксы и нули
- при перепроведении доков на SQL вылетает ошибка
- Обработка ожидания внутри класса 1С++
- как изменить реквизит если форма ТолькоПросмотр()
- Как в СКД сделать итог по выбранной колонке?
- (ЗУП 2.5) Форма т-3 - штатное расписание
- Запуск скрипта Python из 1С
- Не отображаются добавленные отчеты в интерфейсе
- как перебрать все движения документа "перенос данных"