Добрый день.
В статье
its.1c.ru/db/v8std/content/657/hdoc
описана следующая ошибка написания запросов:
"2.1. При обращении к виртуальной таблице следует передавать в условия наиболее простые конструкции, например, "Измерение = Значение".
Не рекомендуется использовать подзапросы и соединения(*) в параметрах виртуальной таблицы, так как это приводит к медленной работе запроса.
"
В запросе, который ранее просили проанализировать на неоптимальную работу, есть несколько подобных ошибок:
Например, модуль менеджера отчета Свод универсальный строка 1045 (аналогично строки 1127, 1176, 1226)
|ИЗ
| ВТАналитика КАК ВТАналитика
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияПоЗарплате.Обороты(
| &НачалоПериода,
| &ВыплатыПоДату,
| Месяц,
| &ФлагНДФЛПриВыплате
| И НУ = &УдержаниеНДФЛ
| И (ПериодДействия.НачДата МЕЖДУ &НачалоПериода И &КонецПериода)
| И (Организация, Подразделение, Сотрудник, СтатусРаботы, СтатьяФинансирования, КЭК, ПериодДействия) В
| (ВЫБРАТЬ
| ВТАналитика.Организация,
| ВТАналитика.Подразделение,
| ВТАналитика.Сотрудник,
| ВТАналитика.СтатусРаботы,
| ВТАналитика.СтатьяФинансирования,
| ВТАналитика.КЭК,
| ВТАналитика.ПериодДействия
| ИЗ
| ВТАналитика)) КАК ДвиженияПоЗарплатеОбороты
| ПО ВТАналитика.Организация = ДвиженияПоЗарплатеОбороты.Организация
| И ВТАналитика.Подразделение = ДвиженияПоЗарплатеОбороты.Подразделение
| И ВТАналитика.Сотрудник = ДвиженияПоЗарплатеОбороты.Сотрудник
| И ВТАналитика.СтатусРаботы = ДвиженияПоЗарплатеОбороты.СтатусРаботы
| И ВТАналитика.СтатьяФинансирования = ДвиженияПоЗарплатеОбороты.СтатьяФинансирования
| И ВТАналитика.КЭК = ДвиженияПоЗарплатеОбороты.КЭК
| И ВТАналитика.ПериодДействия = ДвиженияПоЗарплатеОбороты.ПериодДействия
| И ВТАналитика.Месяц = ДвиженияПоЗарплатеОбороты.Период
|ГДЕ
| ДвиженияПоЗарплатеОбороты.Период МЕЖДУ ДОБАВИТЬКДАТЕ(&КонецПериода, СЕКУНДА, 1) И &ВыплатыПоДату
Не понятно, зачем писать это условие в параметрах виртуальной таблицы ДвиженияПоЗарплатеОбороты, если по этим полям уже прописан отбор в условиях соединения таблицы ВТАналитика и таблицы ДвиженияПоЗарплатеОбороты.
Если оптимизировать эти строки кода, то скорость выполнения запроса увеличивается в 4 раза.
Еще раз просим провести анализ данного запроса и исправить ошибки написания кода, приводящие к замедлению работы отчета.