Очень медленный вывод в таблицу значений СДК на PostreSQL?

1. nick_e 2 30.01.25 11:40 Сейчас в теме
Простейший запрос выбор их справочника с использованием "В ИЕРАРХИИ" жутко тормозит в момент вывода в таблицу значений, если вложенных разделов больше 2-3, сервер postgressql17.
В отбор передаю группу номенклатуры, в запросе пишу выбрать в иерархии и всё.
вывожу так:
    СКД = ПолучитьОбщийМакет("уп_ТоварыКОтправкеОтборСКД"); 
    
    Если ФормаНастройкиСКДО = Неопределено Тогда
        НастройкиСКД = СКД.НастройкиПоУмолчанию;
    иначе    
        НастройкиСКД = ФормаНастройкиСКДО;
    КонецЕсли;    
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    Макет = КомпоновщикМакета.Выполнить(СКД, НастройкиСКД,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(Макет, , ,истина);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    
    ТабЗначений = Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТабЗначений);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    Возврат ТабЗначений; 

Показать

на строк
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
начинаются тормоза минут на 5 результат 170 строк номенклатуры.

На ms sql процесс занимает секунду, на postgresql 5 минут, что с этим можно сделать на postgresql?
Найденные решения
11. nick_e 2 30.01.25 13:24 Сейчас в теме
Проблема в строке
ПО спрНоменклатура.Ссылка.НаименованиеПолное = НоменклатураДополнительныеРеквизиты.Ссылка.НаименованиеПолное

если связь по ссылке то все ок.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 33 30.01.25 11:42 Сейчас в теме
(1) Проблема не в выводе в таблицу, а в выполнении запроса.
Выполните запрос в консоли, подозреваю, результат будет аналогичен.
4. nick_e 2 30.01.25 12:29 Сейчас в теме
5. nick_e 2 30.01.25 12:30 Сейчас в теме
(2) Можно как то исправить?
6. SlavaKron 30.01.25 12:41 Сейчас в теме
(5) Можно сделать запрос в цикле: выбираем все группы, входящие в группу из отбора, потом все группы из подчиненных групп и так далее, пока выборка не станет пустой.
7. Sashares 33 30.01.25 12:48 Сейчас в теме
(5) Покажите текст запроса.
3. VmvLer 30.01.25 11:59 Сейчас в теме
с В ИЕРАРХИИ postgressql плох
8. nick_e 2 30.01.25 13:06 Сейчас в теме
А самое странное, запрос вдруг начинает работать, быстро! Потом снова виснет минут на 5...
9. paulwist 30.01.25 13:11 Сейчас в теме
(8)
А самое странное, запрос вдруг начинает работать, быстро! Потом снова виснет минут на 5...


План запроса в студию.
10. nick_e 2 30.01.25 13:16 Сейчас в теме
ВЫБРАТЬ
    спрНоменклатура.Ссылка КАК НоменклатураСсылка,
    ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Значение, ЛОЖЬ) = ИСТИНА КАК УчаствуетВОбмене
ИЗ
    Справочник.Номенклатура КАК спрНоменклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГруппыТоваровУчаствующиеВОбмене КАК ГруппыТоваровУчаствующиеВОбмене
        ПО спрНоменклатура.Родитель = ГруппыТоваровУчаствующиеВОбмене.ГруппаТоваров
            И (ГруппыТоваровУчаствующиеВОбмене.Участвует)
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
        ПО спрНоменклатура.Ссылка.НаименованиеПолное = НоменклатураДополнительныеРеквизиты.Ссылка.НаименованиеПолное
            И (НоменклатураДополнительныеРеквизиты.Свойство = &Свойство)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уп_ПоследнийСтатусВыгрузки КАК уп_ПоследнийСтатусВыгрузки
        ПО спрНоменклатура.Ссылка = уп_ПоследнийСтатусВыгрузки.Номенклатура
ГДЕ
    НЕ спрНоменклатура.ЭтоГруппа
    И (ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Значение, ЛОЖЬ) = ИСТИНА
            ИЛИ ЕСТЬNULL(уп_ПоследнийСтатусВыгрузки.Участвует, ЛОЖЬ) = ИСТИНА)

СГРУППИРОВАТЬ ПО
    спрНоменклатура.Ссылка,
    ЕСТЬNULL(НоменклатураДополнительныеРеквизиты.Значение, ЛОЖЬ) = ИСТИНА

Показать
11. nick_e 2 30.01.25 13:24 Сейчас в теме
Проблема в строке
ПО спрНоменклатура.Ссылка.НаименованиеПолное = НоменклатураДополнительныеРеквизиты.Ссылка.НаименованиеПолное

если связь по ссылке то все ок.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот