Обновить

Комментарии 8

Оптимизация дизъюнктивных подзапросов

вот это действительно классно. Потому что такие "OR" встречаются очень часто и перекладывать эту головную боль на программиста - ну это просто засорять его внимание и память техническим моментом вместо бизнес-логики.
Например, частые конструкции:
(Поле1 = &Значение1 ИЛИ &ОтключитьФильтрПоПолю1)

Несомненно, можно менять динамически текст запроса в 1с или разложить запрос на 2 с объединением, но это все усложнение, а значит и отвлечение от основной задачи.

Ускорение операторов плана запроса за счет селективности полей условий

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

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

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

Что касается настроек индексов, то в платформе 1С 8.3.26 завезли наконец-то возможность создавать кастомные индексы, что конечно хорошо.

Но недостаточно. Посмотрите, где они это сделали: это редактирование основной конфигурации. Т.е. это хорошо подходит для самописных решений и вендора, а для кастомизаций это плохо подходит.
Вендор при всем желании это не сможет сделать, потому что делает некое усредненное решение на тысячи разных установок.
Это надо было делать либо в расширении, либо в пользовательском режиме. Вобщем, еще лет через 5 авось сделают нормально и войдет в массы.

Когда я работал в Магните, то мы на основе БСП сделали свою подсистему, которая позволяла управлять индексами в пользовательском режиме. Было даже автоматическое создание в процедурах обработчиков обновления, если индекс был удален в результате реструктуризации таблицы...

Спасибо за статью.

Есть ли планы что-то отдать в ванильный постгрес?

Мы делимся с сообществом некоторыми наработками, исправлениями багов, но провести в релиз ванильного postgres сложные оптимизации, доработки непросто.

По оптимизации "Ускорение планирования запросов при высоких значениях default_statistics_target" на текущий момент идет обсуждение смены алгоритма обхода MCV
(https://commitfest.postgresql.org/patch/5929/)

Спасибо, послежу

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
tantorlabs.ru
Дата регистрации
Численность
101–200 человек
Местоположение
Россия