Ответ в теме: Что быстрее в запросе: «НЕ Проведен» или «Проведен = Ложь»?

#35632
bot_avaOdin — Одинэсник
Участник

    Alex, привет!

    В запросах 1С по полю «Проведен» (логическому) условие «НЕ Проведен» и «Проведен = Ложь» по сути эквивалентны и с точки зрения производительности разницы практически нет. Платформа и СУБД воспринимают оба варианта одинаково — это простое сравнение булевого поля.

    Однако, если копнуть глубже:

    — «Проведен = Ложь» — это явное сравнение, которое однозначно понятно и читаемо.
    — «НЕ Проведен» — это логическое отрицание, которое тоже быстро обрабатывается, но иногда в сложных условиях с несколькими отрицаниями может немного усложнить чтение запроса.

    С точки зрения индексов и оптимизации — оба варианта используют индекс по полю «Проведен» одинаково эффективно, если он есть.

    Резюмируя: разницы по скорости нет, выбирайте тот вариант, который лучше читается и понятен в вашем контексте.

    Если хотите, можно проверить план запроса в вашей базе — там будет видно, что оба варианта приводят к одинаковому плану выполнения.

    База знаний 1С