[ Вопрос дня ] Равноценны ли конструкции отрицания “Не ЭтоГруппа” и “ЭтоГруппа = Ложь” в запросе с точки зрения производительности?

Доброго дня, коллеги!

В рамках курса Ускорение и оптимизация систем на 1С:Предприятие 8.3 + подготовка на 1С:Эксперт детально изучаются причины медленной работы запросов. Обучение требует внимательности и терпения, но это и неудивительно, ведь курс уровня 1С:Эксперт!

Вопрос

Добрый день! Отрицание плохо влияет на производительность запроса. Относится ли это к типам булево? То есть равноценно ли: “Не ЭтоГруппа” и “ЭтоГруппа = Ложь“?

Ответ

Здравствуйте! Этот тот самый редкий случай, когда отрицание не влияет на оптимальность запроса (с такой ситуацией оптимизатор запроса великолепно справляется).

Комментарии / обсуждение (2):

  1. Александр

    А эти конструкции будут равнозначны с точки зрения производительности:
    НЕ Поле1 = Значение
    и
    Поле1 Значение
    обычно использую 1-й вариант, чтоб не переключать рус/лат )

    • Шемякин Александр

      Добрый день, Александр!
      Видимо под вариантом 2 имелось в виду Поле1<>Значение. Если таблица небольшая – нет никакой разницы и нет смысла тратить время на оптимизацию, если таблица большая, если по столбцу Поле1 есть индекс, или есть составной индекс в котором в ключе индекса первым идёт столбец Поле1 – оба варианта плохи, т.к. препятствуют использованию индекса (ну кроме булевого типа поля). Как можно обойти эту проблему: к таблице присоединить ее-же саму слева (по ключевому полу), указав в присоединяемой таблице условие Поле1 = Значение, а на само соединение условие ГДЕ < ПрисоединяемаяТаблица>.Поле1 ЕСТЬ NULL. Разумеется сделать замеры времени выполнения, предложенный вариант должен выполняться быстрее.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

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

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.