Некоторые замечания по ускорению работы управляемых форм

Публикация № 258699

Администрирование - Производительность и оптимизация (HighLoad)

125
Началось все с того, что к нам обратился клиент для проведения аудита производительности. Были жалобы на общую производительность системы, а также были обозначены отдельные конкретные операции, которые выполняются долго. О некоторых этих операциях, и о том, как их удалось ускорить и хочу рассказать.

Хочу поделиться своим опытом с сообществом. Надеюсь, он будет интересен и полезен разработчикам 1С, которые делают свои приложения на управляемых формах.

Началось все с того, что к нам обратился клиент для проведения аудита производительности. Были жалобы на общую производительность системы, а также были обозначены отдельные конкретные операции, которые выполняются долго. О некоторых этих операциях, и о том, как их удалось ускорить и хочу рассказать.

Операция 1. Рабочее место менеджера по отгрузке

 

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

Медленно выполняется операция по открытию и обновлению этого динамического списка. Среднее время выполнения этой операции у пользователя с включенным RLS составляло примерно 60 секунд. Данное поведение стабильно воспроизводилось и на копии базы. При работе без RLS скорость увеличивалась до 40 секунд.

Начали делать анализ с замера производительности 1С, однако это не дало никакой информации, т.к. операции по обновлению динамического списка в него не попадают. Тогда стали анализировать с помощью SQL Profiler. Обнаружили, что в этой операции выполняется два долгих запроса, т.к. на данной форме располагаются два динамических списка. Второй динамический список располагался на второй закладке, которая не отображалась при открытии, однако данные тот список получал и при открытии, и при выполнении команды «Обновить» из первого списка.

 

Также этот второй список получал данные даже дольше первого.

Проанализировав текст запроса, мы увидели, что и для первого, и для второго запроса тексты были громоздкими. В первом запроса было соединено шесть таблиц и вложенные запросы, а во втором использовалось пять таблиц.
В динамические списки не стоит задавать сложные запросы, т.к. он читает данные курсорным способом (выбирая данные порционно), а на сложных запросах, в которых участвует много таблиц, чтение курсорным способом может не быть выполнена оптимально оптимизатором СУБД. Рекомендация для таких случаев создавать регистр, в который заносить данные для этого динамического списка. Однако мы продолжили дальнейшее исследование.

В тексте второго запроса нашли возможность оптимизации запроса. В тексте использовалось разыменование поля составного типа. Используя конструкцию «ВЫРАЗИТЬ» удалось ускорить операцию открытия списка формы, однако незначительно.

Текст до изменения:

 

После:

 

Список до сих пор открывался долго.

В большинстве случаев оператор работали только с первой закладкой, а на вторую даже не переходили, а она отнимала у них время работы.

Мы решили отключить этот список, и включать его только при открытии пользователем этой закладки. Попробовали сначала отключать его с помощью сброса флажка видимость, однако это не помогло. Запрос все равно получал данные, даже не смотря на то, что список был невидим.

Тогда решили заменять текст запроса на «пустышку», и устанавливать его назад, при выборе страницы. Тогда при открытии формы, данные для второго дин.списка не будут получаться до тех пор, пока мы не откроем эту закладку.

 

 

 

В итоге, скорость открытия данной формы возвросла после доработок с 50-60 секунд до 7-10 при проверки открытия пользователем с ограничением по RLS.
Операция 2. Вывод характеристик при подборе товара

 

Обработка подбора, при выборе номенклатуры, и двойном щелчке на ней, обработка «проваливалась» в выбор остатков по характеристике этой номенклатуры.

 

Просмотр списка номенклатуры был на приемлемом уровне производительности, однако переход к выбору характеристик мог занимать до 10 секунд. Снятие замеров времени выполнения показало, что среднее время перехода составляет почти 5 секунд, при том что было выполнено почти 5 тысяч операций.

 

Замер производительности 1С показал, что получаение остатков не занимает много времени, однако при переходе контектса выполнения на сервер уходит бОльшая часть времени выполнения операции.

 

При анализе кода обработки, мы увидели возможность заменить контекстный вызов функции «ВывестиХарактеристики» на внеконтекстный. Это позволило сократить объем передаваемого трафика между клиентом и сервером и на наших замерах позволило добиться улучшения в два раза, с 5-6 секунд до 2-3.

Операция 3. Динамический список с остатками

Данная операция была определена с помощью сервиска querytj. Она была в топе долгих запросов на первом месте. Вот некоторые данные о самых долгих операциях выполнения данного запроса. Открытие списка доходило до 500 секунд!

 

Определив по контексту место данного запроса, определили его текст в терминах 1С.

 

Оказалось, что это довольно-таки простой запрос. Соединение с  виртуальной таблицей остатков не должно было вызывать проблем, т.к. этот запрос должен был соединяться с таблицей текущих остатков. Также по логике работы текущие остатки должны быть незначительными, т.к. заказы должны закрываться, и в остатках должны оставаться только незакрытые строки.

Однако он выполнялся долго. Просматривая текст запроса, мы нашли участок, приводящий к замедлению. Это было как раз обращение к таблице итогов регистра «ЗаказыНаПеремещение».

 

«Узкое место»

 

Причиной этого удалось быстро найти. Это были нулевые итоги в этой таблице. Так из 238 тысяч записей текущих итогов, 236 тысяч были нулевыми. Это очень замедляло выполнение данного запроса. Подробнее об этом вопросе рассказано тут.

 


Для решения этой проблемы нужно было сделать пересчет итогов. Так до пересчёта итогов – мы наблюдали долгое открытие списка документов Перемещение товаров, иногда задержка составляла более 60 секунд. Но после пересчета итогов, данный список стал открываться за время менее секунды.

Выводы:

Динамические списки очень удобны для разработчиков, однако не стоит их нагружать слишком сложными запросами. Помните, что они расчитаны на работу с простыми запросами, в которых можно эффективно использовать курсорное чтение (читать данные порциями).

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

125

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. speshuric 1120 12.02.14 15:25 Сейчас в теме
Статья в целом неплохая, но вот следующая цитата у меня вызывает вопросы:
В динамические списки не стоит задавать сложные запросы, т.к. он читает данные курсорным способом (выбирая данные порционно), а на сложных запросах, в которых участвует много таблиц, чтение курсорным способом может не быть выполнена оптимально оптимизатором СУБД.

Судя по ТЖ и по трассам 1С 8 курсоры вообще-то не использует. Данные для форм выбираются достаточно неприятно для SQL Server, порционно, но не курсором. Если запрос строится платформой по объекту метаданных, то обычно запрос выглядит примерно так:
ВЫБРАТЬ ПЕРВЫЕ %СколькоТоСтрок%
    Поле1, Поле2, ... ПолеN
ИЗ
    %КучкаСоединений-StarJoin%
ГДЕ
    УпорядоченноеПоле1 > &УпорядоченноеПоле1НачалаСписка ИЛИ
    УпорядоченноеПоле1 = &УпорядоченноеПоле1НачалаСписка И УпорядоченноеПоле2 > &УпорядоченноеПоле2НачалаСписка ИЛИ
    УпорядоченноеПоле1 = &УпорядоченноеПоле1НачалаСписка И УпорядоченноеПоле2 = &УпорядоченноеПоле2НачалаСписка И ... УпорядоченноеПолеN > &УпорядоченноеПолеNНачалаСписка
УПОРЯДОЧИТЬ ПО УпорядоченноеПоле1, УпорядоченноеПоле2, ... УпорядоченноеПолеN 
Показать

Основная проблема тут не только соединения, а чаще условие "ГДЕ". Даже если есть индекс по всем значениям упорядочнивания, начиная с 4-5 полей SQL часто перестаёт понимать, что это всего лишь "выводи записи начиная с ..." и, если первое поле упорядочнивания не даёт достаточно селективного отбора запрос либо уходит в сканы, либо в паралеллизм, либо и то и другое.
В принципе подход 1С понятен:
1. Не использовать курсоры, которые потребуют хранения состояния и сервер 1С перестаёт быть stateless
2. Реализацией на "честном" SQL можно покрыть больше СУБД.
Способы борьбы тоже яснее ясного: отказываться от лишних сортировок, строить индексы "с доп. упорядочиванием"

Ну а если основой запроса является еще и динамический список, то там есть другие моменты: 1С не может гарантировать, что у запроса есть какой-то "уникальный ключ". И поэтому поступает как может. Выбирает сначала первые 1000, потом первые 2000, потом первые 3000 и т.д. Легче всего убедиться в этом, трассируя динамическую форму с таблицей остатков.

Здесь производительность явно принесена в жертву универсальности и авторов платформы в этом можно понять, а нам надо учитывать эту специфику. Курсорность тут ни при чем.
adhocprog; milanse; AllexSoft; agrustny; amon_ra; JesteR; theshadowco; Evil Beaver; sunshineuee; Vladuha; artbear; baton_pk; dour-dead; puzakov; xzorkiix; Sitex; vlad.frost; slavap; fancy; Bronislav; rzabolotin; awk; malikov_pro; kiruha; tormozit; AHDP; cleaner_it; +27 Ответить
2. maddy 17 12.02.14 15:58 Сейчас в теме
В последнем запросе левое соединение стоит заменить внутренним.
По фильтру документы по которым нет остатков отсекаются, результат будет тот же но должен быть быстрее.
talych; artbear; PowerBoy; cleaner_it; +4 Ответить
3. bonv 12.02.14 18:25 Сейчас в теме
Мы решили отключить этот список, и включать его только при открытии пользователем этой закладки. Попробовали сначала отключать его с помощью сброса флажка видимость, однако это не помогло. Запрос все равно получал данные, даже не смотря на то, что список был невидим.


В 8.3 это должны были починить. Сам не проверял.
5. ivanov660 1626 12.02.14 23:31 Сейчас в теме
(3) doxflow, ага в 8.3 есть такое исправление. Сами столкнулись когда пробовали в УТ 11 не последней версии посмотреть работоспособность - старая форма подбора товаров упала (там есть переключения видимости между списками номенклатуры и характеристик, но данные запрашиваются с обоих списков).
4. B2B 260 12.02.14 23:29 Сейчас в теме
По-моему, использовать конструкции типа ТИПЗНАЧЕНИЯ(...) = ТИП(...) абсолютно неправильно. Я бы переписал запрос примерно так:
ГДЕ
    Статусы.Документ ССЫЛКА Документ.ОтборочнаяВедомость
    И Статусы.Документ.Распоряжение ССЫЛКА Документ.ЗаказНаПеремещение
EdmundoAlvares; ghostaz; Oleg_nsk; wunderland; Vladuha; kuza_87; pt_olga; kirillkr; burlakov; Nefertary; west__; ivanov660; +12 Ответить
6. ivanov660 1626 12.02.14 23:41 Сейчас в теме
(4) B2B, а вот функции Выразить(поле как тип) довольно разумно, т.к. сокращает количество неявно присоединяемых таблиц
7. Bukaska 131 13.02.14 00:33 Сейчас в теме
(6) ivanov660, Да ВЫРАЗИТЬ - оно почти везде нужно, особенно когда дело касается регистраторов. Так как без данного оператора мы просто вешаем БД)))
10. xzorkiix 32 13.02.14 17:13 Сейчас в теме
(7) Bukaska, а где можно посвятиться по поводу Выразить в запросах?
11. indigo_ 13.02.14 17:39 Сейчас в теме
(10) xzorkiix,
где можно посвятиться

или Вы имели в виду "просветиться" ?
16. speshuric 1120 14.02.14 10:26 Сейчас в теме
(10)
Про "выразить" в запросах по составным типам
19. kuza_87 25 19.02.14 06:29 Сейчас в теме
(4) B2B, Ты прав. Замер производительности не даст соврать!
20. kuza_87 25 19.02.14 06:34 Сейчас в теме
(4) B2B, Сейчас сделал поиски текста запросов с "ТипЗначения()=Тип()" по новейшей конфигурации 1с "Документооборот" и пришел в ужас. 1с-вцы повсюду используют данную функцию!!! Хотя сами больше всех орут про производительность и валят народ на экзаменах при малейших косяках
OrsoBear; bulpi; +2 Ответить
22. OrsoBear 26.02.14 08:24 Сейчас в теме
(20) kuza_87, Те же действия сделал.. Меня не валили. Но не знал про этот косяк. Потому плюс.
21. Andreynikus 1254 20.02.14 12:49 Сейчас в теме
(4)B2B,
Правильнее делать
ТипЗначения()=Тип()
или
Статусы.Документ ССЫЛКА Документ.ОтборочнаяВедомость
И ВЫРАЗИТЬ(Статусы.Документ КАК Документ.ОтборочнаяВедомасть).Распоряжение ССЫЛКА Документ.ЗаказНаПеремещение


Между этими способами нет никакой разницы, запрос на языке SQL будет одинаковым, а условие примет следующий вид: WHERE (T1._RecorderTRef = @P2) AND (T2._Fld781_TYPE = 0x08 AND T2._Fld781_RTRef = @P3)
Это условие довольно простое и оптимизатор может легко его обработать и подобрать оптимальный план.

НО, если написать так как написано в комментарии (4)

Статусы.Документ.Распоряжение ССЫЛКА Документ.ЗаказНаПеремещение

т.е. обратится в условии через точку к полю составного типа, то условие примет вид:
WHERE (T1._RecorderTRef = @P2) AND (CASE WHEN T1._RecorderTRef = @P3 THEN T2._Fld781_TYPE ELSE CAST(NULL AS BINARY(1)) END = 0x08 AND CASE WHEN T1._RecorderTRef = @P4 THEN T2._Fld781_RTRef ELSE CAST(NULL AS BINARY(4)) END = @P5)

В моем случае это привело к сканированию таблицы Т1 и как следствие количество логических чтений выросло в 4 раза, запрос стал работать медленнее. Оптимизатор просто не смог использовать индекс по полю T1._RecorderTRef.

Следовательно лучше использовать ТипЗначения()=Тип() или в условии использовать ВЫРАЗИТЬ при обращении через точку к полю составного типа. Оба этих приема приводят к одинаковому тексту SQL запроса.
talych; Puk2; vbuots; putdv; +4 Ответить
8. DoctorRoza 13.02.14 08:12 Сейчас в теме
Отмечусь, нужно со статьей по-внимательней ознакомиться! :)
9. burlakov 79 13.02.14 14:03 Сейчас в теме
а если бы запрос переписали по человечески - без вложенных запросов, то было бы еще быстрее. и никакого профайлера не надо.
12. AllexSoft 13.02.14 18:22 Сейчас в теме
Неплохая статья... в целом как обмен опытом то плюс... опять же вопрос к Доржи, когда уже будут Кейсы для внедренцев\разработчков... а то статьи разбросаны, потом фиг найдешь (
13. Evgen.Ponomarenko 542 13.02.14 21:58 Сейчас в теме
(12) AllexSoft,
Ага... всего-то требуется сделать "человеческое" управление функциями "Мои рекомендации","Мои загрузки" и "Мои комментарии".
14. asved.ru 36 14.02.14 07:18 Сейчас в теме
В порядке работы допущена, я бы сказал, методическая ошибка: исследования должны проводиться на оптимальном состоянии БД. Что это значит: итоги пересчитаны, индексы и статистики актуальны, регламентные операции по поддержке такого состояния автоматизированы.

Приведение БД в оптимальное состояние не требует трудозатрат высококвалифицированного специалиста и может существенно сэкономить его трудозатраты на этапе анализа и решения проблем: в вашем случае работы по п.3 вообще бы не потребовались.

agrustny; +1 Ответить
15. gaglo 14.02.14 10:23 Сейчас в теме
А что за конфигурация исследовалась, если не секрет? Или хоть общими словами: чья-то полностью самописная, или стандартная, или стандартная, но доработанная по методу Франкенштейна?
agrustny; +1 Ответить
17. Stas-ch 32 17.02.14 10:48 Сейчас в теме
(15) gaglo, Судя по скринам это УТ-11.
18. gaglo 17.02.14 10:57 Сейчас в теме
(17) Ну и интересно же, что эти тормозные операции 1 и 2? Сразу были в УТ-11 такими или же их некто "доработал"?
23. GROOVY 2490 26.02.14 13:34 Сейчас в теме
Про динамический список: А условие в левом соединении ...Остатки(, {Товар КАК Ссылка})... не решит проблему выбора левых пустых остатков?
24. StaticUnsafe 07.03.14 10:32 Сейчас в теме
Спасибо за статью. Были проблемы с избытком динамических списков на УФ. До трех на одной форме со сложными запросами. Благодаря советам удалось оптимизироваться.
25. Sasha255n 14.03.14 13:04 Сейчас в теме
Да соглашусь с предыдущими ораторами не понятно что за конфигурация
26. vermouth 26.07.14 15:44 Сейчас в теме
А условие из ГДЕ нельзя перенести в условие виртуальной таблицы РегистрНакопления.ЗаказыНаПеремещение.Остатки() ??
27. sanfoto 495 05.10.14 14:20 Сейчас в теме
(0) rzabolotin,

В итоге, скорость открытия данной формы возвросла после доработок с 50-60 секунд до 7-10 при проверки открытия пользователем с ограничением по RLS.


Кстати вставлю свой пример про (псевдо) "Управляемые формы" : была подобная проблема на моноблоках обработка открывалась от 60 сек до 3 минут....
в отладчике смотрели запрос выполняется быстро не более 1сек. (На обычном/не древнем десктопе форма открывалась несколько секунд).
Решили что проблема с отрисовкой формы... видюха на моноблоке слабая....ничего не поделаешь.

Но помог случай)) сломался на моноблоке HDD (вечером) .... заменить было нечем - новый привезут еще когда.... и как раз у нас были в отделе несколько SSD .... взяли.. поставили... накатили OS +1с
и о чудо обработка открывалась не более 3 сек!!!!! вот такой "тонкий клиент" однако... якобы совсем для слабого оборудования предназначен... угу ага)))
28. Bukaska 131 06.10.14 11:21 Сейчас в теме
(27) sanfoto, Ну так.. 1с же беспокоит дисковое пространство. Чем быстрее диск, тем более быстрее открываются данные)))

о чудо обработка открывалась не более 3 сек!!!!! вот такой "тонкий клиент" однако... якобы совсем для слабого оборудования предназначен... угу ага)))

Если говорят про слабое звено, то все равно нужно смотреть посильнее звено.. Это же все таки программа)))
29. AllexSoft 06.10.14 11:40 Сейчас в теме
была проблема из запроса заполнялась таблица значений на форме.. Таблица заполнялась очень долго, полезли смотреть почему, думали запрос тормозной (а он реально большой был). Нет, запрос отрабатывал быстро, а вот с передачей с сервера на клиент или с отрисовкой таблицы были какие то тормоза ужасные. 1000позиций всего лишь - отображалось минут 5! Диски SSD - база небольшая, локальная, просто для теста взяли. Победить так и не удалось (
30. Tanis 24.12.14 14:05 Сейчас в теме
Спасибо большое!
Но возник вопрос.
Составляю форму реквизитов, ставлю запрос. А вот наименование никак не выводит. Как его получить в эту нарисованную форму?
Спасибо!
31. Tanis 24.12.14 16:08 Сейчас в теме
Если правильно понял, то ни строка ни ссылка не передается. :-(
Либо что-то изначально поставил не так.
Можете чуть подробнее подсказать, где настроить и как основные элементы чтоб использовать это условие?
Оставьте свое сообщение

См. также

Мониторинг высоконагруженной системы 37

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Администрирование данных 1С

Высоконагруженной системе (более 8000 клиентских сессий) мониторинг необходим. Про опыт использования инструментов для мониторинга – самописной системы информирования, написанной на C#, и конфигурации «Центр контроля качества» в связке с системой отображения данных Grafana, на конференции Infostart Event 2018 Education рассказал Олег Репников.

13.09.2019    3456    Repich    4       

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux 72

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С Zabbix

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019    6934    Sloth    11       

Анализ производительности APDEX 65

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.

31.08.2019    2647    93    YPermitin    7       

Неочевидные проблемы производительности: важность системного подхода при анализе 50

Статья Программист Нет файла v8 Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Часто программисты и 1С-ники сталкиваются с совершенно необъяснимыми на первый взгляд проблемами. Но это потому, что их внимание направлено только на один сегмент системы, а не на всю систему полностью. О том, почему нужно стараться смотреть на ситуацию комплексно, рассказал специалист по производительности компании SOFTPOINT Александр Денисов.

19.07.2019    4157    Филин    12       

Ловля блокировок на связке "Microsoft SQL server - 1С" 38

Статья Системный администратор Программист Нет файла v8 v8::blocking MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Материал относится к базам данных на связке «1С - MS SQL Server». Один из способов отлова блокировок в бд 1С . Переход к управляемым блокировкам через режим "Автоматический и управляемый".

16.07.2019    3535    fhqhelp    0       

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным 57

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка

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

02.07.2019    6012    igordynets    119       

Ускорение чтения правил обмена в УПП 1.3 в 20 раз! 66

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Способ оптимизации чтения правил обмена конвертации данных. Может понадобиться при большом размере правил и высокой периодичности обмена.

27.06.2019    4124    YPermitin    16       

Хотите снизить нагрузку на процессор сервера в 2 раза? 21

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В статье рассмотрено влияние частого запуска регламентных заданий на процессор сервера 1С.

27.06.2019    4111    Дмитрий74Чел    6       

Непридуманные истории по оптимизации. История 1 82

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Первая статья из планируемого цикла об оптимизации приложений на базе 1С. Без теории. Одна практика.

13.06.2019    7280    Repich    117       

Оптимизация: неэффективные запросы 6

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Разработка

В большинстве случаев основной причиной медленной работы системы при многопользовательском режиме работы является блокировка данных СУБД (говорим про клиент-серверную версию). Блокировка - это не есть хорошо или плохо, это жизненно необходимая вещь при построении прикладной логики работы системы. Но блокировки таблиц, записей могут быть как вполне законными, так и далеко не всегда оправданными в каждой конкретной ситуации. Одной из самых распространенных причин неоптимальной блокировки ресурсов является некорректное написание запросов.

13.06.2019    2623    slayer-ekb    10       

За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С 90

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Статистика базы данных Производительность и оптимизация (HighLoad)

Мы расскажем и покажем, как добавить данные счетчиков производительности серверов 1С и MS SQL в нашу базу мониторинга за 15 минут. Приведем список наиболее важных из них, опишем основные особенности.

28.05.2019    7151    ivanov660    5       

Не думать о секундах свысока... 55

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Несколько примеров оптимизации типовой конфигурации УТ11. Описанные приемы подходят для многих других конфигураций.

21.05.2019    4374    vasilev2015    21       

Альтернативная стратегия управления блокировками 45

Статья Программист Архив с данными v8 v8::blocking 1cv8.cf Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная публикация освещает одну из альтернативных стратегий блокирования данных на уровне MS SQL Server, которая недоступна средствами 1С, но может быть весьма полезной. Разбирается практический пример.

20.05.2019    3746    zhichkin    15       

Как работают управляемые блокировки 121

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Все типовые конфигурации содержат ошибки, потому как управляемые блокировки в 1С слишком уж "управляемые", при понижении уровня изоляции про некоторые "нюансы" просто забыли. Для создания и эксплуатации качественной системы, которая способна поддерживать транзакционную целостность данных при параллельной работе, информацию в этой статье желательно знать, хотя, конечно, ничего особо нового я не открыл.

29.04.2019    13126    comol    198       

Странное потребление места на диске С 33

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Решение проблемы постоянного роста папки %AppData%/Local/Temp.

26.04.2019    10605    kuzyara    12       

Включение встроенного в платформу механизма "Копии базы данных" и использование "Дата Акселератора". Новый стандартный механизм использования баз OLAP в 1С 50

Статья Системный администратор Программист Нет файла v8 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

С версии 1С 8.3.14 в платформе появился новый функционал «Копии базы данных». В данной публикации я хочу рассказать, как включить использование данного механизма в платформе 1с и как его использовать для получения отчетов с копии базы данных, которая может быть вынесена на внешний сервер относительно текущей базы данных, а также как использовать систему «Дата акселератор», в которой база данных целиком размещена в оперативной памяти рабочего сервера кластера серверов «1С:Предприятия».

25.04.2019    8178    Elf1k    27       

5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С 201

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В этой статье мы разберем механизм использования конфигурации "Анализ технологического журнала" на практике, и всего через 15 минут работы вы получите функциональный, удобный инструмент мониторинга проблем производительности базы 1С.

18.04.2019    17833    ivanov660    40       

Как разбить базу на файлы и не сойти с ума 108

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Разбиение базы данных 1C на файлы и последующее сопровождение. Нюансы, грабли и прочее.

06.04.2019    8644    YPermitin    29       

Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз 124

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

В связи с санкциями и другими событиями сейчас все более и более актуальна тема перевода ПО компаний на отечественное и свободное программное обеспечение. Одной из самых востребанных СУБД на рынке на данный момент является PostgreSQL - надежная, высокопроизводительная и хорошо масштабируемая СУБД, которая является прямым конкуретном таким крупным компаниям с их топовыми продуктами, как Oracle, IBM и Microsoft. Однако каждый, кто переходит на PostgreSQL, сталкивается с трудностями, прежде всего с настройкой и производительностью. Не обошли проблемы с производительностью "слоника" и меня. Предлагаю вашему вниманию перевод статьи "How a single PostgreSQL config change improved slow query performance by 50x" автора Pavan Patibandla, которая мне помогла улучшить производительность PostgreSQL.

18.03.2019    9808    w.r.    23       

Простое программное решение проблем с блокировками SQL 17

Статья Системный администратор Программист Нет файла v8 v8::blocking 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Описание одного из способов программного решения проблемы блокировок при проведении документов в клиент-серверной 1С.

06.03.2019    5845    dmitrydemenew    38       

Производительность сервера 1С и фоновые задания 63

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В падении производительности сервера 1С зачастую виноваты не регламентные / фоновые задания, они выполняют полезную работу. Но задания нельзя оставлять «наедине» с базой.

05.02.2019    10738    user715208    38       

Новый режим реструктуризации (обновление базы данных на сервере в режиме v2) 168

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная статья скорее является заметкой и отчетом об успешном использовании нового механизма реструктуризации баз данных 1С. Актуально для больших баз данных.

31.10.2018    18364    Dach    46       

Нетривиальные подходы в решении всем известных проблем: ускорение «больших» документов в 1С и ускорение поиска по подстроке. Как добиться эффекта в разы? 62

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Часто у пользователей 1С поиск информации по большим спискам данных по подстроке занимает продолжительное время. Павел Баркетов рассматривает причины торможения запросов с поиском по подстроке и описывает возможности и подходы к их оптимизации и ускорению. Также в статье разобраны причины длительного проведения «больших» документов (более 10 000 строк) и даны рекомендации по ускорению этих операций.

30.08.2018    10818    gallam99    31       

Кейс: как мы разрабатывали систему автоматизации анализа ошибок, связанных со скоростью работы 1С 43

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Бурмистров Андрей рассказывает о создании инструмента по автоматизации анализа неоптимальных запросов в коде 1С. Он поднимает вопрос о предпосылках создания этого инструмента, рассказывает о возникших форс-мажорных ситуациях, с которыми столкнулась команда в процессе разработки, и о том, как они с ними справлялись.

27.08.2018    7463    Andreynikus    20       

3000 пользователей на трехъядерном Athlon – сверхтонкий веб-клиент для 1С 97

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Юрий Лазаренко поделится опытом ускорения 1С нестандартными методами, в том числе с помощью http-сервисов. Он расскажет, как с помощью сверхтонкого клиента для 1С и интеграции с сайтом удалось добиться ускорения 1С на порядок. Также в статье приведена статистика по отчету о нагрузочном тестировании сверхтонкого клиента для 1С:ITIL.

16.08.2018    11309    TitanLuchs    28       

Когда условие в срезе последних даже вредит 20

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Спойлер: оптимизатор MSSQL видит внешние, по отношению к срезу, условия, и строит план с их учетом.

05.08.2018    7718    nicxxx    105       

Оптимизация без оптимизации: как мы ускорили 1С в 10 раз без трудоемкой оптимизации запросов и алгоритмов. Практический опыт 80

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Можно ли ускорить 1С, не оптимизируя запросы, не разбивая транзакции и не наращивая оборудование? В статье Аверьянова Алексея рассмотрены три практических кейса повышения производительности системы без трудоемкой оптимизации: отложенное резервирование «в один поток», отложенное создание и проведение реализаций.

26.07.2018    13107    avryanovalexey    100       

Альтернативные технологии нагрузочного тестирования серверной части кода прикладных решений на платформе 1С 56

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Евгений Филиппов знакомит с альтернативными технологиями нагрузочного тестирования серверной части кода прикладных решений на платформе 1С. Он рассказывает об узких местах традиционной технологии нагрузочного тестирования и методах их обхода путем переноса работы с клиентских соединений на фоновые задания и изменения способа управления сеансами. Также автор приводит примеры с реальных проектов, подтверждающие жизнеспособность предложенных технологий.

12.07.2018    8203    jf2000    10       

Архитектура ИТ-системы на базе 1С в крупной организации. Часть 2. Чудес не бывает 81

Статья Системный администратор Нет файла v8 УТ11 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Развернуто отвечаю, как мы боремся с зависаниями системы и вообще решаем проблемы. С примерами, но без слайдов.

04.07.2018    12170    Repich    74       

Архитектура ИТ-системы на базе 1С в крупной организации 101

Статья Системный администратор Нет файла v8 УТ11 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

В данной статье я хотел бы очень крупными мазками обрисовать архитектуру ИТ системы на базе 1С в крупных (более 1 тысячи пользователей) организациях. Она не несет какой либо образовательной цели, это просто попытка показать – «а как у нас».

02.07.2018    14700    Repich    112       

Взгляд на ошибки и платформу через призму HI-Load 53

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Поговорим об ошибках в целом и их влиянии на Hi-Load системы в частности. Может ли тут помочь платформа 1С? (да и должна ли в принципе?) Немного про сам Hi-Load на примере крупной БД. PS Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2017 COMMUNITY.

18.06.2018    9969    Sergey.Noskov    27       

Простые регулярные выражения 59

Статья Программист Архив с данными v8 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Шпаргалка к экзамену "Эксперт по технологическим вопросам".

30.04.2018    11666    3    vasilev2015    30       

Неоптимальная работа запроса 128

Статья Программист Нет файла v8::Запросы Бесплатно (free) Производительность и оптимизация (HighLoad)

Шпаргалка к экзамену "Эксперт по технологическим вопросам".

27.04.2018    16966    vasilev2015    32       

Неоптимальности вида «план исполнения запроса "испортился"» - поиск и исправление 69

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Рассматривается один из частых типов проблем в рабочих базах (второй после блокировок, пожалуй... впрочем, часто и тесно с ними связанный). Материал относится к базам данных на связке «1С - MS SQL Server».

05.02.2018    13717    fhqhelp    20       

Пример поиска неоптимальности при загрузке SQL-сервера по CPU на 100% 83

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Вечер пятницы, ничто не предвещало.. Звонок из техподдержки: "центральная база розничной сети лежит". Далее расследование причин.

23.12.2017    15277    fhqhelp    32       

Исследование технологического журнала 1С при помощи регулярных выражений в блокноте 129

Статья Системный администратор Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Все из тех, кто пробовали сдать на сертификат "Эксперт по технологическим вопросам 1С", сталкивались с методикой ЦКТП - разбор файлов технологического журнала при помощи консоли bash. Я, в свою очередь,внёс изменения в данную методику. Мне хотелось достичь более понятного вида и сфокусироваться на Perl, в качестве предпочтительного средства обработки файлов ТЖ. Вот что из этого вышло:

30.10.2017    24228    MrWonder    38       

Вопросы разработки, анализа производительности и оптимизации приложений 1С под управлением СУБД ORACLE 16

Статья Системный администратор Программист Нет файла v8 Oracle Бесплатно (free) Производительность и оптимизация (HighLoad)

Я являюсь сотрудником Комсомольского-на-Амуре филиала компании «Сухой». Наше предприятие производит боевую авиационную технику и комплектующие для гражданской авиационной техники. В статье я вам расскажу про свой опыт работы со связкой 1С и СУБД ORACLE.

05.09.2017    10437    user597755_vices2015    2       

Оптимизируй это! Или MS SQL и Экспертный подход творят чудеса! 207

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

В статье речь пойдет про взаимодействие сервера 1С с MS SQL. Мы очень часто слышим, как важно оптимизировать все критические участки системы заблаговременно, в плановом режиме, как надо, «от и до» во всех деталях. Но в реальной жизни бывает по-другому. Очень часто клиенты обращаются к нам, когда система уже не дает работать: «спасите, помогите, болит очень сильно, надо решать». Об одном из таких случаев я и хотел бы вам сегодня рассказать.

11.07.2017    28953    R.Tsarenko    32       

Планы запросов - это просто! 291

Статья Программист Нет файла v8::Запросы Бесплатно (free) Производительность и оптимизация (HighLoad)

Наверное, каждый 1С-ник задавался вопросом "что быстрее, соединение или условие в ГДЕ?" или, например, "сделать вложенный запрос или поставить оператор В()"? В данной статье я не дам вам исчерпывающих инструкций по чтению планов запроса. Но я постараюсь объяснить доходчиво - что это такое и с какой стороны к ним подойти.

04.07.2017    31150    Evil Beaver    58       

PostgreSQL на Windows – реальная альтернатива для высоконагруженных систем на базе 1С 157

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Многие интересуются PostgreSQL, но не знают, насколько хорошо будет она работать с уже существующими системами. «Инфософт» - одна из первых компаний, кто опробовал PostgreSQL на Windows. О своем опыте перехода рассказывает руководитель отдела информационных технологий компании.      

23.06.2017    37137    a.doroshkevich    113       

Ускорение в 100 раз. Решаем проблему блокировок 330

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Я являюсь автором и тренером курсов по оптимизации и повышению производительности в 1С. Большинство людей приходят ко мне на обучение, желая разобраться со своими проблемами, и я очень часто слышу от них: «эти блокировки замучили, достали, жизни нет, что делать – не знаем. Технологический журнал включали, галочки ставили, форумы читали – ничего не помогает». Я уверен, что эта тема актуальна для многих из вас, поэтому в статье, не вдаваясь глубоко в подробности, я хочу вам дать некоторые конкретные рекомендации, которые вы сможете применить у себя и сразу получить ощутимый эффект. Например, если у вас запрос из-за блокировок выполняется 15 секунд, то после оптимизации он начнет выполняться за 15 миллисекунд. Это обычная практика, никакой фантастики – все это можно сделать.

13.06.2017    60242    Andreynikus    34