Правило
Заголовок раздела «Правило»Используйте метод Пустой(), чтобы проверить, есть ли выбранные строки в результате
запроса. Так не будет тратиться время на выгрузку результата в таблицу значений.
Выбрать() и Выгрузить() материализуют весь результат (для Выбрать() — с
дополнительной служебной обработкой), хотя для ответа «есть ли строки» достаточно
факта наличия. На больших выборках разница ощутима, а в горячих местах
(проведение, обмены) — критична.
Ещё одна форма того же анти-паттерна — проверка через выгрузку:
Лёгким должен быть и сам запрос
Заголовок раздела «Лёгким должен быть и сам запрос»Пустой() экономит выгрузку, но сам запрос выполняется полностью. Если нужен
только факт наличия, упростите и его: ПЕРВЫЕ 1, без УПОРЯДОЧИТЬ ПО и
ИТОГИ — СУБД остановится на первой найденной строке, а не соберёт и
отсортирует всю выборку ради ответа «да/нет».
Когда не применять
Заголовок раздела «Когда не применять»Если данные после проверки всё равно нужны — не выполняйте запрос дважды
(Пустой() + повторный Выполнить().Выбрать() хуже, чем одна выборка). Выполните
запрос один раз и проверяйте Выборка.Следующий() или Таблица.Количество():
Пустой() — для случая, когда нужен только факт наличия строк.