4. Улучшения 1C#
4. Улучшения 1C #
4.1. Ядро #
Решена проблема легких блокировок при большом количестве одновременных подключений к СУБД.
Максимальный размер данных в ячейках таблицы, поддерживаемый модулем pg_dump, был увеличен с 1 ГБ до 2 ГБ.
Изменены значения параметров, которые при значениях по умолчанию могли приводить к ухудшению производительности 1С.
4.2. Планировщик #
Оптимизировано выполнение запросов, использующих агрегатные функции, за счет изменения порядка полей группировки.
Улучшено прогнозирование соединений таблиц с многоколоночными индексами, что позволяет получить более точную оценку количества строк и выбрать оптимальный оператор план запроса.
Оптимизировано кеширование временных таблиц за счет уменьшения списка инвалидации.
Оптимизированы различные операции со списком колонок, используемых в запросе, для снижения накладных расходов на выполнение запросов и оптимизацию использования памяти.
Оптимизировано выполнение запросов путем выделения общих условий для операций
OR
иAND
в выраженияхWHERE
, с целью ускорения фильтрации на ранних этапах их обработки.Ускорено выполнение запросов, использующих конструкцию
IN (&Array Of Values)
. Подробнее в статье Решение проблемы Values в Postgres.Исправлена ошибка некорректной оценки строк в результате соединения нескольких таблиц, когда из одной таблицы выбиралось 0 строк и на результат соединения накладывались дополнительные условия.
Улучшен алгоритм оценки селективности на основе гистограмм для запросов, использующих соединения по нескольким столбцам таблиц.
Доработан алгоритм выбора подходящего индекса путем учета селективности каждого рассматриваемого планировщиком индекса. Это позволяет с большей вероятностью задействовать покрывающий все условия индекс, что приводит к более быстрому выполнению запросов и экономии вычислительных ресурсов. Как пример, это позволяет ускорить обновление итогов регистров накопления.
Исправлена ошибка в механизме
многоколонного индекса
, приводящая к выбору неправильного индекса для определения селективности по заданным условиям.
4.3. Модули #
Поддержаны логические слоты репликации для механизма копий баз данных в dbcopies_decoding.
Функция
SELECT FASTTRUNCATE
, предназначенная для усечения временных таблиц, была ускорена в fasttrun. Подробнее в статье Временные таблицы и SELECT FASTTRUNCATE.Ускорено выполнение запросов, использующих временные таблицы, которые были созданы из таблицы значений, переданной в запрос в качестве параметра в online_analyze. Подробнее в статье 1С и СУБД Tantor: история одного внедрения.
Реализовано расширение pg_trace, предназначенное для удобного профилирования SQL-запросов согласно установленным условиям сбора трассировки. Подробнее в документации pg_trace и статье pg_trace — трассировщик запросов от компании Тантор Лабс.