Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамРеализация обработки данных

1С:Предприятие 8.2 /
Разработчикам /
Реализация обработки данных

Оглавление

Ограничение на использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах

См. также

 

Методическая рекомендация (полезный совет)

1.1. При разработке текстов запросов следует иметь в виду, что при работе в клиент-серверном варианте, когда в качестве СУБД используется PostgreSQL, производительность выполнения запросов с конструкцией ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ значительно снижается. В особенности это касается случаев, когда в запросе встречаются две и более таких конструкций.

Поэтому в общем случае не рекомендуется использовать конструкцию ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ в запросах. И в тех случаях, где это возможно, рекомендуется переписать текст исходного запроса без использования этой конструкции.

Например, следующий запрос:

ВЫБРАТЬ
ЕСТЬNULL(ПланПродаж.Номенклатура, ФактическиеПродажи.Номенклатура) КАК Номенклатура,
ЕСТЬNULL(ПланПродаж.Сумма, 0) КАК СуммаПлан,
ЕСТЬNULL(ФактическиеПродажи.Сумма, 0) КАК СуммаФакт
ИЗ
ПланПродаж КАК ПланПродаж
ПОЛНОЕ СОЕДИНЕНИЕ ФактическиеПродажи КАК ФактическиеПродажи
ПО ПланПродаж.Номенклатура = ФактическиеПродажи.Номенклатура

может быть реализован без конструкции ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ следующим образом:

ВЫБРАТЬ
ПланФактПродаж.Номенклатура КАК Номенклатура,
СУММА(ПланФактПродаж.СуммаПлан) КАК СуммаПлан,
СУММА(ПланФактПродаж.СуммаФакт) КАК СуммаФакт
ИЗ
(ВЫБРАТЬ
ПланПродаж.Номенклатура КАК Номенклатура,
ПланПродаж.Сумма КАК СуммаПлан,
0 КАК СуммаФакт
ИЗ
ПланПродаж КАК ПланПродаж

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ФактическиеПродажи.Номенклатура,
0,
ФактическиеПродажи.Сумма
ИЗ
ФактическиеПродажи КАК ФактическиеПродажи) КАК ПланФактПродаж

СГРУППИРОВАТЬ ПО
ПланФактПродаж.Номенклатура

1.2. Исключение составляют случаи, когда текст исходного запроса не может быть переписан без использования конструкции ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ по объективным причинам. Следует иметь в виду, что при выполнении данной конструкции на СУБД PostgreSQL она автоматически заменяется платформой 1С:Предприятие на эквивалентную, которая может быть исполнена в СУБД PostgreSQL. При этом сохраняются все атрибуты запроса, такие как модификаторы ПЕРВЫЕ, РАЗЛИЧНЫЕ, а также УПОРЯДОЧИТЬ ПО. В таких случаях не следует "механически" заменять конструкцию ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ только с той целью, чтобы от нее избавиться в тексте запроса.

2. Не допускается одновременно использовать конструкцию ПОЛНОЕ СОЕДИНЕНИЕ и обращение к табличным частям из раздела ВЫБРАТЬ.

Данное требование продиктовано особенностью выполнения подобных запросов на СУБД PostgreSQL и необходимостью переносимости прикладных решений на эту СУБД.

См. также


Нас находят: 1c8 глюки полного соединения в запросе, полное соединение в запросе 1с 82, полное соединение в запросе 1с, внешнее соединение запрос 1с 8 2, внешнее соединение в запросах 1с 8 2, внешнее соединение 1с 8 2, 1с 8 2 внешнее соединение, соединения запрос 1с, соединения в запросах 1с, соединение запросов 1с


Подписка на новости RSS

Мы на Facebook