Обмеження на використання конструкції "ПОВНЕ ЗОВНІШНЄ З’ЄДНАННЯ" у запитах
1.1. Під час розроблення текстів запитів слід мати на увазі, що під час роботи в клієнт-серверному варіанті, коли як СУБД використовується PostgreSQL, продуктивність виконання запитів із конструкцією ПОВНЕ ЗОВНІШНЄ З’ЄДНАННЯ значно знижується. Особливо це стосується випадків, коли в запиті трапляються дві й більше таких конструкцій.Див. також
|
Методична рекомендація (корисна порада) 1.1. Під час розроблення текстів запитів слід мати на увазі, що під час роботи в клієнт-серверному варіанті, коли як СУБД використовується PostgreSQL, продуктивність виконання запитів із конструкцією ПОВНЕ ЗОВНІШНЄ З’ЄДНАННЯ значно знижується. Особливо це стосується випадків, коли в запиті трапляються дві й більше таких конструкцій. Тому в загальному випадку не рекомендується використовувати конструкцію ПОВНЕ ЗОВНІШНЄ З’ЄДНАННЯ у запитах. І в тих випадках, де це можливо, рекомендується переписати текст вихідного запиту без використання цієї конструкції. Наприклад, наступний запит: ВИБРАТИ ЄNULL(ПланПродажів.Номенклатура, ФактичніПродажі.Номенклатура) ЯК Номенклатура, ЄNULL(ПланПродажів.Сума, 0) ЯК СумаПлан, ЄNULL(ФактичніПродажі.Сума, 0) ЯК СумаФакт З ПланПродажів ЯК ПланПродажів ПОВНЕ З’ЄДНАННЯ ФактичніПродажі ЯК ФактичніПродажі ЗА ПланПродажів.Номенклатура = ФактичніПродажі.Номенклатура може бути реалізований без конструкції ПОВНЕ [ЗОВНІШНЄ] З’ЄДНАННЯ таким чином: ВИБРАТИ ПланФактПродажів.Номенклатура ЯК Номенклатура, СУМА(ПланФактПродажів.СумаПлан) ЯК СумаПлан, СУМА(ПланФактПродажів.СумаФакт) ЯК СумаФакт З (ВИБРАТИ ПланПродажів.Номенклатура ЯК Номенклатура, ПланПродажів.Сума ЯК СумаПлан, 0 ЯК СумаФакт З ПланПродажів ЯК ПланПродажів ОБ’ЄДНАТИ ВСІХ ВИБРАТИ ФактичніПродажі.Номенклатура, 0, ФактичніПродажі.Сума З ФактичніПродажі ЯК ФактичніПродажі) ЯК ПланФактПродажів ЗГРУПУВАТИ ЗА ПланФактПродажів.Номенклатура 1.2. Виняток становлять випадки, коли текст вихідного запиту не може бути переписаний без використання конструкції ПОВНЕ ЗОВНІШНЄ З’ЄДНАННЯ з об’єктивних причин. Слід мати на увазі, що під час виконання цієї конструкції на СУБД PostgreSQL вона автоматично замінюється платформою 1С:Підприємство на еквівалентну, яка може бути виконана в СУБД PostgreSQL. При цьому зберігаються всі атрибути запиту, такі як модифікатори ПЕРШІ, РІЗНІ, а також УПОРЯДКУВАТИ ЗА. У таких випадках не слід "механічно" замінювати конструкцію ПОВНЕ ЗОВНІШНЄ З’ЄДНАННЯ лише з тією метою, щоб позбутися її в тексті запиту. |
2. Не допускається одночасно використовувати конструкцію ПОВНЕ З’ЄДНАННЯ і звернення до табличних частин із розділу ВИБРАТИ.
Ця вимога зумовлена особливістю виконання подібних запитів на СУБД PostgreSQL і необхідністю перенесення прикладних рішень на цю СУБД.
Див. також
- Загальні вимоги до конфігурації