-
Notifications
You must be signed in to change notification settings - Fork 116
Open
Labels
component/diagnosticsДоработка / создание диагностикиДоработка / создание диагностики
Description
Описание проблемы, ошибки, которую надо диагностировать
Не рекомендуется использовать логическое ИЛИ в условиях соединения, то есть в секции ПО запроса. Это так же может привести к выбору неоптимального плана и медленной работе запроса. Простого универсального способа переписать такой запрос без использования ИЛИ не существует. Следует проанализировать решаемую задачу и попытаться найти другой алгоритм ее решения.
В некоторых случаях возможно переписать запрос через ОБЪЕДИНИТЬ ВСЕ
Например, вместо
ВЫБРАТЬ Реализация.Ссылка
ИЗ Документ.Реализация.Товары КАК Реализация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товар
ПО Реализация.Товар = Товар.Ссылка
И (Товар.Артикул = "001" ИЛИ Товар.Цена = 100)можно использовать
ВЫБРАТЬ Реализация.Ссылка
ИЗ Документ.Реализация.Товары КАК Реализация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товар
ПО Реализация.Товар = Товар.Ссылка
И Товар.Артикул = "001"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Реализация.Ссылка
ИЗ Документ.Реализация.Товары КАК Реализация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товар
ПО Реализация.Товар = Товар.Ссылка
И Товар.Цена = 100или
- сначала отобрать товары во временной таблице,
- а потом сделать соединение по этой временной таблице с простым условием
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
- Стандарт - Эффективные условия запросов, п.2
- использование логического ИЛИ в условиях - Типичные причины неоптимальной работы запросов и методы оптимизации
Параметры диагностики
Тип Статья на русском
- 🐜 Ошибка
- 👮 Уязвимость
- 💂♂️ Потенциальная уязвимость
- 💩 Качество кода
-
Другое
Важность Статья на русском
- 💔 Блокирующая / Blocker
- ❤️ Критическая / Critical
- 💛 Важная / Major
- 💙 Незначительная / Minor
- 💚 Информационная / Info
- 💞 Другое
Тэги Статья на русском
-
STANDARD- "Нарушение стандартов 1С" -
LOCKINOS- "Не будет работать в другой ОС" -
SQL- "Проблема с запросом" -
PERFORMANCE- "Проблема производительности" -
BRAINOVERLOAD- "Непонятный код" -
BADPRACTICE- "Плохая практика программирования" -
CLUMSY- "Излишние действия" -
DESIGN- "Ошибка в проектировании" -
SUSPICIOUS- "Подозрительный код" -
UNPREDICTABLE- "Непредсказуемо работающий код" -
DEPRECATED- "Устаревшая функциональность" -
ERROR- "Ошибочная конструкция" -
LOCALIZE- "Проблемы локализации"
Время на исправление (минут)
15 минут
Дополнительная информация
zeegin and Levon444
Metadata
Metadata
Assignees
Labels
component/diagnosticsДоработка / создание диагностикиДоработка / создание диагностики