Примеры выполненных работ по оптимизации
Ускорение выполнения отложенных движений по расчетам с клиентами/поставщиками" (УТ 11)
База "Управление торговлей 8, редакция 11", используется в серверном режиме, 1С:Предприятие 8 Сервер 64-бита + MS SQL Server 2012 Stаndard. В базе ведется учет более 3-х лет, количество одновременных пользовательских сеансов ~30.
При выполнении регламентного задания у всех пользователей в базе наблюдается значительное замедление работы. Фоновое задание выполняется более 30 минут или «подвисает».
При анализе выявлено два проблемных участка кода в общем модуле "Распределение взаиморасчетов": несколько пакетов типового запроса по остаточным таблицам регистра «Расчеты с поставщиками» и «Расчеты с клиентами» приводили к получению неоптимальных планов запроса на сервере СУБД.
В результате оптимизации: пакеты запросов переписаны таким образом, чтобы сильно понизить вероятность получения сервером СУБД неоптимальных планов запроса.
Фоновое задание выполняется менее 1 минуты.
Ускорение проведения документа "Реализация товаров и услуг" (УТ 10.3)
База "Управление торговлей 8 Редакция 10.3", используется в серверном режиме, 1С:Предприятие 8 Сервер 64-бита + MS SQL Server 2008R2 Stаndard. В базе ведется учет более 3-х лет, ежедневно вводится более 300 новых документов "Реализация товаров и услуг".
Документы "Реализация товаров и услуг", с количеством строк более 1000 в табличной части, проводятся 10 и более минут, при проведении такого документа, у всех пользователей в базе наблюдается замедление работы и ошибки на блокировках. Ответственные пользователи вынуждены проводить документы с большим количеством строк, когда никого в базе больше нет.
При анализе выявлено два проблемных участка кода в общем модуле "Партионный учет":
1) Неудачно написанный запрос по таблицам партионного регистра приводил к получению крайне неоптимальных планов запроса на сервере СУБД.
2) Промежуточная таблица значений, содержащая большое количество строк, не содержала индекса по столбцам, по которым выполнялось большое количество итераций поиска.
В результате оптимизации:
1) Неудачный запрос переписан таким образом, чтобы сильно понизить вероятность получения сервером СУБД неоптимальных планов запроса.
2) В таблицу значений добавлен индекс.
Документ "Реализация товаров и услуг", с 2800 строк в табличной части, стал проводится за 43 секунды.
Уменьшение задержек скроллинга таблицы УФ (НЕ динамический список) (УТ 11)
База "Управление торговлей 8, редакция 11", используется в серверном режиме, 1С:Предприятие 8 Сервер 64-бита + MS SQL Server 2008R2 Stаndard. В базе ведется учет около 2-х лет, количество одновременных пользовательских сеансов ~20.
Сторонним специалистом в конфигурацию добавлена обработка с управляемой формой. При скроллинге в таблице появились задержки перемещения по строкам таблицы. Среднее время перехода со строки на строку таблицы 5 секунд. Пользователи раздражаются.
При анализе выявлен проблемный обработчик в модуле формы: вызов серверной контекстной процедуры заполнения строки из обработчика таблицы «ПриАктивизацииСтроки», заполняющий поле-представление. Разработчик формы использовал объектную технику получения данных из информационной базы.
В результате оптимизации: серверная контекстная процедура заполнения поля-представления заменена на серверную внеконтекстную, а получение данных для заполнения поля-представления сведено в один пакетный запрос.
Среднее время перехода со строки на строку таблицы 0.1 секунды.