Как я оптимизировал проведение документов в ТиС
База данных - HighLoad оптимизация
Итак. Обратился ко мне очередной клиент с просьбой оптимизировать проведение документов в конфигурации "Торговля и Склад". База в формате SQL. Были поставлены определенные задачи - сейчас период неделя проводился за ночь, необходимо, чтобы за ночь проводилось 3 или хотя бы 2 недели. Прикинув по своему опыту, предупредил клиента, что в режиме проведения на точку актуальности коим является восстановление последовательности или прочие аналогичные проведения с восстановлением последовательности ускорения большого не бывает - обычно в 1.5 раза. Решили все же попробовать.
С помощью библиотеки ToySQL и набора оптимизации ТиС, которые опробованы уже не на одном десятке клиентов сделал работу. Отдал клиенту на проверку. В общем-то так и получилось. Ускорение примерно составило 1.5 раза.
Стали думать, что же можно сделать еще. Обычно после такой оптимизации результат всех устраивал. Возможно кто-то сам потом дорабатывал мой код, поэтому кроме стандартных действий я ничего не предпринимал. Сказал, чтобы клиент сделал замер производительности в отладчике (до этого также делали замер, который показал что 80% времени уходит на расчет итогов). Сделали замер. Каково же было мое удивление, когда выяснилось, что примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов. Причем по сути своей это были постоянные величины, которые почти никогда не менялись. После этого заменили обращение к константами и периодическим реквизитам на обращение к переменным в глобальном модуле. Такие действия дали прирост еще 30%. В общем получился довольно неплохой результат, которым остались все довольны - в том числе и я.
з.ы. Отладчик в 1С полезная штука! :)
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
HighLoad оптимизация Системный администратор 1С:Предприятие 7.7 1C77 Бесплатно (free)
Вариант для SQL 77
18.10.2022 5121 Dionisiy 7
HighLoad оптимизация Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Конфигурация на 1С 7.7, показывающая блокировки на MS SQL сервере и доменных пользователей по SPID. Используется 1С++ и классы.
1 стартмани
09.11.2021 6817 10 ShoDm 17
HighLoad оптимизация Инструменты администратора БД Системный администратор Разработчик 1С:Предприятие 7.7 1С:Предприятие 8 1C:Бухгалтерия 1C77 Бесплатно (free)
Еще один подход к увеличению производительности 1C+SQL = использование RAM-дисков
16.02.2015 48415 kos 36
HighLoad оптимизация Системный администратор 1С:Предприятие 7.7 Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 1C77 Абонемент ($m)
1С сама проверит своё железо и скажет, чего ей не хватает!
1 стартмани
12.01.2014 25070 80 by_1Cnik 7
HighLoad оптимизация Системный администратор Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Недорогое повышение скорости работы 1С
31.05.2013 15209 ins-post 22
Чистка данных HighLoad оптимизация Системный администратор Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
По статье "Зачем в 1С нужно периодически пересчитывать итоги по регистрам?" http://infostart.ru/public/177171/ Обработка для 7.7, чтобы посмотреть что же творится в БД для SQL
1 стартмани
13.03.2013 25438 54 maxpiter 15
Инструменты администратора БД HighLoad оптимизация Системный администратор Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Автоматическая переиндексация базы
11.09.2012 19614 Gazulo 3
HighLoad оптимизация Системный администратор Разработчик Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 1C77 Россия Бесплатно (free)
Обратились ко мне с вопросом по теме форума: http://forum.mista.ru/topic.php?id=558772 Автор темы: "DennizzM". Название: "v7: 1c v7.7 ошибки транзакции - как отловить виновника?" Текст с сокращениями: "Вопрос наверняка не новый... Итак - есть база 1c v7.7 (самописная конфа). Периодически у пользователей возникает ошибка при проведении транзакции. База работает под терминалом. Нагрузка на дисковую подсистему небольшая, CPU на нуле, RAM до черта свободного. Вопрос вот в чем - как отловить инициатора первой транзакции которая всех держит? Итак - как мне выкрутиться? ;) ...я не имею права и не могу лезть внутрь конфы и модифицировать ее.".
13.07.2011 28877 hogik 16
Нечто подобное было и у меня, но решил с помощью 1С++. Методом ReconnectNative().
Честно говоря, кроме рекламы фирмы 1С и самовосхваления в этой статье я ничего полезного не заметил.
А эта фраза меня убила просто :-)
"Прикинув по своему опыту, предупредил клиента, что в режиме проведения на точку актуальности коим является восстановление последовательности или прочие аналогичные проведения с восстановлением последовательности ускорения большого не бывает - обычно в 1.5 раза".
На русский ее можно перевести? А то смысл как-то ускользает.
P.S. Кстати, я в десятки раз ускорил. Все зависит от документов, у меня были по несколько тысяч строк.
- рыконнектнативе здесь нафик не нужен ибо 2005. да и средства оптимизации, которые я применяю решают ее и без этого на 2000 сервере.
- не заметил полезного? читать надо не по диагонали и включать серое вещество.
- рекламы фирмы 1С здесь нет
- самовосхваления тоже нет. если кажется - крестится надо
- по-моему богатому опыту, который заключается в переделки нескольких десятков конфигураций ТиС на платформе SQL при среднем размере документа в 10 строк проведение документа на точку актуальности можно ускорить прямыми запросами в 1.5 раза. так понятно или еще разжевать?
- не я начал мерятся членами, но продолжу. при 1000 строк ускорение получается раз в 30-50.
---------------------------------------------------------------
Это что угодно, но не "Записки автоматизатора". :-)
Ты не указал никаких данных. Ни об версию SQL, ни о размере документов, ни о методе решения
---------------------------------------------------------------
> по-моему богатому опыту, который заключается в переделки нескольких десятков конфигураций ТиС на платформе SQL при среднем размере документа в 10 строк
При чем тут ТИС это или не ТИС? Все зависит от профиля организации.
Продавцы мебели до десятка строк в накладую забивают, аптечные фирмы тысячи... или больше :-)
---------------------------------------------------------------
> - не заметил полезного? читать надо не по диагонали и включать серое вещество.
Не хами.
---------------------------------------------------------------
> - рекламы фирмы 1С здесь нет
А ссылочки на сайт 1С, где предлагается КУПИТЬ?
---------------------------------------------------------------
> - самовосхваления тоже нет. если кажется - крестится надо
А как же про твой "богатый" опыт? :-)
---------------------------------------------------------------
> - не я начал мерятся членами, но продолжу
Да нет, парниша, ты и начал :-)
---------------------------------------------------------------
Ты в 1С когда последний работал? Посмотрел твой профиль на www.free-lance.ru. Мда... Какое отношение твоя бурная деятельность имеет к 1С? :-)
Например, "Каково же было мое удивление, когда выяснилось, что примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов." - совсем не безполезная информация
(0) > Сказал, чтобы клиент сделал замер производительности в отладчике (до этого также делали замер, который показал что 80% времени уходит на расчет итогов). Сделали замер. Каково же было мое удивление, когда выяснилось, что примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов.
Вчитайтесь и не тормозите! Исковеркали базу, в которую насовали кучу периодических реквизитов? И мало того, еще и в ОбработкаПроведения() их всунули?
> 15. Abadonna 16.12.2008 16:12:55
> Чего уж так накинулись?
> Например, "Каково же было мое удивление, когда выяснилось, что примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов." - совсем не безполезная информация
И чем же это полезно? Для тебя лично и для всех?
Частный случай в единичной базе.
Сейчас провел замер в Комплексной для Украины (7.70.023). Типовой ТиС нет по рукой.
Документ РасходнаяНакладная
Модуль Строка Кол Время %(Время)
-------------------------------------------------------------------
Глобальный модуль 8732 ВремРегистры.РассчитатьРегистрыНа(Конт.ТекущийДокумент()); 1 0.32026 84.92
-------------------------------------------------------------------
Глобальный модуль 4433 Ит.ВыполнитьЗапрос(Конт.ТекущийДокумент(),,спСчета); 1 0.00717 1.90
-------------------------------------------------------------------
Документ.РасходнаяНакладная.Модуль Документа 510 ДвиженияРегистров(); 1 0.00403 1.07
-------------------------------------------------------------------
Глобальный модуль 816 Реквизит=Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти(ИмяРеквизита); 18 0.00283 0.75
-------------------------------------------------------------------
Документ.РасходнаяНакладная.Модуль Документа 536 Операция.Записать(); 1 0.00229 0.61
-------------------------------------------------------------------
Глобальный модуль 805 Реквизит=Метаданные.Документ(ВидДокумента).РеквизитШапки(ИмяРеквизита); 14 0.00213 0.57
> речь совсем не про эффективность ToySQL
Как Катон Старший все время про Карфаген, так и автор все время про ToySQL?
:-)
Задним числом работали пару человек, хорошо проинструктированные к чему это может привести.
Необъяснимо, но факт, в базе не было отрицательных остатков. :)
Комментарии (4294967295)
..
+ еще: использование при частых обращениях для периодических реквизитов объекта "Периодический" позволяет получить выигрыш до 25%
(0)
> до этого также делали замер, который показал что 80% времени уходит на расчет итогов
> Ускорение примерно составило 1.5 раза
> примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов
Допустим, раньше проведение выполнялояь за 100 секунд.
Из них 80 уходило на расчет итогов. Пусть даже на расчет периодики уходило остальные 20.
После "ускорения", проведение выполняется 100/1,5=67 секунд.
Допустим, что уменьшение пошло только за счет расчета итогов.
И на него теперь тратится 80-33=47 сек.
На периодику - остальные 20.
И сколько это получается? 30%, а не "примерно 60%", как заявил автор.
"Поздравляю вас, гражданин, соврамши" :-)
Пусть раньше проводилось за 100 секунд. Ускорили в 1,5 раза, получили время выполнения 67 секунд. Из них (оставшихся!) 60% уходило на чтение констант и периодики. Ускорили этот процесс, получили прирост в 30% и итоговое время выполнения примерно 23 секунды.
Как на них могло уходить 60%, т.е. 40 секунд, если ДО оптимизации на них уходило не более 20 секунд?
И при чем тут твое раздражение? Я конкретно доказал, что автор подтасовал факты, что бы показать свои выдающиеся успехи в "оптимизации".
> Ускорили этот процесс, получили прирост в 30% и итоговое время выполнения примерно 23 секунды.
А это тут причем? Я про дальнейшую оптимизацию не упоминал.
Мое хамство?
(7) toypaul > - не заметил полезного? читать надо не по диагонали и включать серое вещество.
Вот это хамство.
И я, в отличии от некоторых, включил серое вещество и посчитал. И доказал.
А если оставить тему хамства - я был прав?
И при чем тут мое оправдание? АЛьФ по непонятной причине в (74) оторвался на меня, а теперь я же и должен оправдываться? :-)
"Честно говоря, кроме рекламы фирмы 1С и самовосхваления в этой статье я ничего полезного не заметил.", "На русский ее можно перевести? А то смысл как-то ускользает.".
И продолжаешь хамить до сих пор. Предложено тебе уже было уйти из ветки, раз уж тебя так тема раздражает. Или ты на бан напрашиваешься?
> кроме рекламы фирмы 1С
за это я извинился в убитом без причины комменте
> и самовосхваления
Я написал конкретные вещи, почему я считаю, что автор исказил информацию, что бы показать себя в лучшем виде. Так оно и оказалось.
> ничего полезного не заметил
Тут я был не прав. Я заметил.
Что былые заслуги информатора часто не дают людям собственными мозгами оценить достоверность той или иной информации, подаваемую им в лучших традициях Канадской Оптовой Кампании
написал то, что сам лично в замерах считал. до оптимизации - 80% (примерно) на расчет итогов. после оптимизации в сумме 60% на константы и периодику
1-й факт: чтение констант и периодики всегда более затратно, чем прописанные в глобанике псевдоконстанты - так это ежу понятно. Тут автору плюс. НО!!! Зачем глобальник? Вот Альф защищает автора, а по скромности не предложил очевидное решение: дополнительный глобальный модуль с помощью Формекса. В Дгм все переменные переназначаются динамически (юзеру только выйти и снова зайти в 1С или перезагрузить ДГМ).
2-й факт: Альтаир доказал, да и сам автор признал, что некоторые цифры мягко говоря среднепотолочные. А это уже минус - не трэба дадьку нас дурить.:-))
Вывод: да нифига страшного! Плюс на минус, как известно дает ноль, но аж никак не прикупом в морду (в смысле оскорблений) - полковник был такая сука, что пасовал на семи тузах... Так что пожали друг другу руки, мысленно хряпнули по рюмочке и перешли к конструктивному диалогу. А то ей-богу, попрошу у Альфа или у Суппорта права и буду сносить все комметы от первого до последнего, если среди них заваляется хоть один матюгальный (шутка, конечно, но в каждой сказке есть доля сказки...).
А вот здесь я че-то не допонял - налей еще (:-)) ). На ИС уже цензура? Уже надо спрашивать, в какую ветку заходить, а в какую низзя?
Я могу, конечно, создать свой сайт якобы об 1С и если кому-то не понравится история моего друга о любовных похождениях, или рассказ моей любовницы о новой моде на бикини, то и забанить его могу!
Но кому такой сайт будет интересен? И куда мы катимся?
Не знаю... Я, пожалуй, на мисту.
Там попроще общаться будет. И с Альфом, и с Тем-О-Ком-Нельзя.
А то угрожают за правду забанить. Или за несоблюдение субординации?
Мы не в армии :-)
Так вот иногда приходится напоминать, что не в каждом споре рождается истина и если тебя что-то сильно не устраивает, то лучше отказаться от продолжение разговора. Причем отказаться должен тот, кто комментирует чужой блог, а не автор блога. У комментарора всегда есть возможность создать свою запись в блоге или статью с полным разбором аналогичной ситуации в качестве полноценного ответа и запостить ссылку в комментарии к изначальной статье. Такие "ответы" (а то и целые цепочки взаимых ответов) на портале сплошь и рядом находятся. И именно такой подход будет корректным, профессиональным и правильным в рамках портала.
Если же есть желание просто посклочничать, то для этого есть куча мест в интернете. В крайнем случае можно использовать личку, т.к. чужие склоки очень мало кому интересно читать.
Altair777`у - жирный плюс за бдительность, и потраченное время на критику никчемной статейки.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 18579
Создание 16.12.08 13:49
Обновление 16.12.08 13:49
Просмотры 15744
Загрузки 0
Рейтинг
6
Комментарии 72
Код открыт Не указано
Рубрики HighLoad оптимизация
Кому
Системный администратор
,
Разработчик
Тип файла Нет файла
Платформа Оперативный учет 7.7
Конфигурация 1С:Торговля и склад 7.7
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)