Использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах (FullOuterJoinQuery)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Дефект кода |
BSL |
Важный |
Да |
10 |
sql standard performance |
Описание диагностики¶
Следует избегать использования конструкции ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ в запросах, особенно когда в качестве СУБД используется PostgreSQL. В тех случаях, когда это возможно, необходимо переписать запрос без использования ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ.
Примеры¶
Запрос из примера ниже приведет к повышенной нагрузке при использовании PostgreSQL.
Процедура Тест1()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| ЕСТЬNULL(ПланПродаж.Сумма, 0) КАК СуммаПлан,
| ЕСТЬNULL(ФактическиеПродажи.Сумма, 0) КАК СуммаФакт
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ ПланПродаж КАК ПланПродаж
| ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ ФактическиеПродажи КАК ФактическиеПродажи // Диагностика должна сработать здесь
| ПО ПланПродаж.Номенклатура = ФактическиеПродажи.Номенклатура
| ПО Товары.Номенклатура = ПланПродаж.Номенклатура";
КонецПроцедуры
Источники¶
- Ограничение на использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах
- Руководство администратора, особенности использования PostgreSQL
Сниппеты¶
Экранирование кода¶
// BSLLS:FullOuterJoinQuery-off
// BSLLS:FullOuterJoinQuery-on
Параметр конфигурационного файла¶
"FullOuterJoinQuery": false