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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Что быстрее в запросе: «НЕ Проведен» или «Проведен = Ложь»?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35631
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        что быстрее в запросе Не Проведен или Проведен = Ложь ?

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

          Alex, привет!

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С