Проблемы при оптимизации типового запроса #722656


#0 by dark_avenger
Уважаемые коллеги, не могли бы вы ткнуть меня носом, куда мне ещё глянуть в сторону оптимизации выполнения запроса. Ситуация следующая: Есть два запроса - 1 типовой, перекочевал ещё с 8.1 и использует вложенные запросы, собственно вот он: Второй запрос - моя версия оптимизации (переделал на вт), весь запрос не пишу, публикую только проблемную часть: Собственно проблема в следующем: первый запрос в консоли исполняется от 10 сек до 2 минут (20 раз выполнял). Второй в консоли: 2-7 секунд. Но когда дело доходит до запуска выполнения второго запроса в составе конфигурации, он выполняется от получаса до полутора часов!!! Первый же стабильно от 10сек до 2 минут... Т.е. проблема возникает именно тогда, когда я вставляю код в конфигурацию. А вот в консоли проблемы нет... В чем подвох? База на MS SQL 2008. Платформа 8.2.18 Дописанная БСХП 2.0, объем базы около 4гб, записи в регистре хозрасчетный с 2012 года.
#1 by DGorgoN
Чудес не бывает. Впихни запрос в универсальный отчет и посмотри выполнение.
#2 by Эмбеддер
сюда РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, , СчетДт В ИЕРАРХИИ (&СписокСчетов), , СчетКт В ИЕРАРХИИ (&СписокСчетов), , Организация = &Организация) КАК ХозрасчетныйОбороты надо добавить отбор номенклатуры, т.к. существует такой список
#3 by Escander
с теми-же параметрами?
#4 by alle68
А что дальше происходит с этими тремя ВТ? Совет: исследовать 5-й и 7-й параметры ВТ "ОборотыДтКт".
#5 by guevara74
Конкретно в вашем случае проблема скорее всего в конструкции " В ИЕРАРХИИ (&СписокСчетов)". Сделайте временную таблицу из Плана счетов с отбором по счетам и индексированием а условия замените на что то подобное " В Выбрать ТаблицаСчетов.Счет Из ТаблицаСчетов"
#6 by dark_avenger
Нельзя, выщеукзанный участок вызывается более 170 раз, для оптимизации я виртуальную таблицу ОборотыДтКт закинул в ВТ и держу в менеджере, т.к. из параметров меняется только состав номенклатуры. Да параметры одни и те - же, в данном случае это месяц август, одна организация и список из 34 счетов в том числе с группами. Дальше я их использую в другой ВТ, делаю связь, группировки, отборы, но то что происходит дальше выполняется мгновенно. А вот это интересный совет, спасибо, сегодня попробую! Кстати сегодня обнаружил ещё одну особенность. Если вызывать запрос через отладчик запроса (Инструменты разработчика, конструкция от(Запрос)), то он тоже выполняется пол часа... Кстати, кому интересно - выполняю оптимизацию процедуры ПолучитьТаблицуПеремещений. На данный момент даже с таким запросом добился оптимизации в 8 раз. На всякий случай, ниже полный код процедуры:
#7 by dark_avenger
Отобрать все типы субконто из доступных мне счетов и добавить отбор по типам? Думают это не значительно повлияет на процесс, но я протестирую.
#8 by Ник второй
Получи план запроса и все станет сразу понятно!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С