bslls:FullOuterJoinQuery¶
Использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах (FullOuterJoinQuery)¶
- Тип: Дефект кода
- Важность: Важный
- Включена по умолчанию: Да
- Теги:
sql,standard,performance
Описание диагностики¶
Следует избегать использования конструкции ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ в запросах, особенно когда в качестве СУБД используется PostgreSQL. В тех случаях, когда это возможно, необходимо переписать запрос без использования ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ.
Примеры¶
Запрос из примера ниже приведет к повышенной нагрузке при использовании PostgreSQL.
Процедура Тест1()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| ЕСТЬNULL(ПланПродаж.Сумма, 0) КАК СуммаПлан,
| ЕСТЬNULL(ФактическиеПродажи.Сумма, 0) КАК СуммаФакт
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ПланПродаж КАК ПланПродаж
| ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ ФактическиеПродажи КАК ФактическиеПродажи // Диагностика должна сработать здесь
| ПО ПланПродаж.Номенклатура = ФактическиеПродажи.Номенклатура
| ПО Товары.Номенклатура = ПланПродаж.Номенклатура";
КонецПроцедуры
Источники¶
- Ограничение на использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах
- Руководство администратора, особенности использования PostgreSQL
Соответствие стандартам¶
- #std435, п. 1.1: Ограничение на использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах — Диагностика «Использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах (FullOuterJoinQuery)» проверяет условие пункта 1.1 стандарта std435.
Источник диагностики¶
- Исходная статья
- Ревизия:
f4616cda8a216789ee40529ed857e614b9e2ea25 - Лицензия:
LGPL-3.0-or-later