4. Улучшения 1C#

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. Модули #