Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 сен 2024, 08:31

Тормозит запрос в режиме SQL

Автор YuraVK, 11 апр 2019, 22:50

0 Пользователей и 1 гость просматривают эту тему.

YuraVK

Добрый вечер! Может кто подскажет, не могу никак вычислить слабое место в запросе по ЗП 3.1, запрос в режиме клиент-сервера (SQL) первый раз выполняется больше минуты, потом уже не тормозит, понятно, что кешируется. В файловом варианте вообще не тормозит. Собственно сам запрос:
ВЫБРАТЬ
   ОтражениеЗПАлименты.Ссылка КАК Регистратор,
   КОНЕЦПЕРИОДА(ОтражениеЗПАлименты.Ссылка.Дата, МЕСЯЦ) КАК ПериодВыплаты,
   "Удержание из сумм по оплате труда, денежного довольствия, компенсаций и прочих выплат" КАК ВидОперацииБУ,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).Удержание КАК ВидУдержания,
   ОтражениеЗПАлименты.ФизическоеЛицо КАК ФизическоеЛицо,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).Получатель КАК Получатель,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).ПлатежныйАгент КАК ПлатежныйАгент,
   ОтражениеЗПАлименты.Сумма КАК СуммаБезКОСГУ,
   "1" КАК КФО,
   ОтражениеЗПАлименты.ДокументОснование КАК ИсполнительныйЛист,
   ОтражениеЗПАлименты.СтатьяФинансирования КАК СтатьяФинансирования,
   ОтражениеЗПАлименты.СтатьяРасходов КАК КОСГУ,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).Получатель.Код КАК ПолучательКод,
   ОтражениеЗПАлименты.ФизическоеЛицо.Код КАК ФизическоеЛицоКод,
   ВЫБОР
      КОГДА ОтражениеЗПАлименты.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоЗарплате.ВозмещениеУщерба)
         ТОГДА "Удержание"
      ИНАЧЕ МАКСИМУМ(ПОДСТРОКА(ВЫРАЗИТЬ(ДопРеквизитыВидУдержания.Значение КАК СТРОКА), 1, 20))
   КОНЕЦ КАК ДопРеквизитВидУдержания,
   МАКСИМУМ(ПОДСТРОКА(ВЫРАЗИТЬ(ДопРеквизитыБанковскийСчет.Значение КАК СТРОКА), 1, 20)) КАК ДопРеквизитБанковскийСчет,
   МАКСИМУМ(ПОДСТРОКА(ВЫРАЗИТЬ(ДопРеквизитыЛицевойСчет.Значение КАК СТРОКА), 1, 20)) КАК ДопРеквизитЛицевойСчет,
   ПОДСТРОКА(ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).РеквизитыИсполнительногоДокумента, 1, 70) КАК РеквизитыИсполнительногоДокумента,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).ВидИсполнительногоДокумента КАК ВидИсполнительногоДокумента,
   СУММА(ОтражениеЗПАлименты.Сумма) КАК Сумма,
   ОтражениеЗПАлименты.ВидОперации КАК ВидОперации,
   ВЫБОР
      КОГДА ОтражениеЗПАлименты.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоЗарплате.ВозмещениеУщерба)
         ТОГДА "В доход бюджета"
      ИНАЧЕ ""
   КОНЕЦ КАК ВДоходБюджета,
   ВЫБОР
      КОГДА ОтражениеЗПАлименты.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоЗарплате.ВозмещениеУщерба)
         ТОГДА ПОДСТРОКА(ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).Комментарий, 1, 30)
   КОНЕЦ КАК ПричинаУдержания
ИЗ
   Документ.ОтражениеЗарплатыВБухучетеБюджетныхУчреждений.УдержаннаяЗарплата КАК ОтражениеЗПАлименты
      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчетаКонтрагентов КАК БанковскиеСчетаКонтрагентов
      ПО ОтражениеЗПАлименты.ДокументОснование.Получатель = БанковскиеСчетаКонтрагентов.Владелец
      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИсполнительныйЛист.ДополнительныеРеквизиты КАК ДопРеквизитыВидУдержания
      ПО ОтражениеЗПАлименты.ДокументОснование = ДопРеквизитыВидУдержания.Ссылка
         И (ДопРеквизитыВидУдержания.Свойство.Имя ПОДОБНО "ВидУдержания%")
      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИсполнительныйЛист.ДополнительныеРеквизиты КАК ДопРеквизитыБанковскийСчет
      ПО ОтражениеЗПАлименты.ДокументОснование = ДопРеквизитыБанковскийСчет.Ссылка
         И (ДопРеквизитыБанковскийСчет.Свойство.Имя ПОДОБНО "БанковскийСчет%")
      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИсполнительныйЛист.ДополнительныеРеквизиты КАК ДопРеквизитыЛицевойСчет
      ПО ОтражениеЗПАлименты.ДокументОснование = ДопРеквизитыЛицевойСчет.Ссылка
         И (ДопРеквизитыЛицевойСчет.Свойство.Имя ПОДОБНО "ЛицевойСчет%")
ГДЕ
   ОтражениеЗПАлименты.Ссылка В(&СписокОтраженийЗП)
   И ОтражениеЗПАлименты.ВидОперации В(&ВидОперацииАлименты)

СГРУППИРОВАТЬ ПО
   КОНЕЦПЕРИОДА(ОтражениеЗПАлименты.Ссылка.Дата, МЕСЯЦ),
   ОтражениеЗПАлименты.ФизическоеЛицо,
   ОтражениеЗПАлименты.ДокументОснование,
   ОтражениеЗПАлименты.СтатьяФинансирования,
   ОтражениеЗПАлименты.СтатьяРасходов,
   ОтражениеЗПАлименты.ФизическоеЛицо.Код,
   ОтражениеЗПАлименты.Ссылка,
   ОтражениеЗПАлименты.ВидОперации,
   ВЫБОР
      КОГДА ОтражениеЗПАлименты.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоЗарплате.ВозмещениеУщерба)
         ТОГДА ПОДСТРОКА(ОтражениеЗПАлименты.ДокументОснование.Комментарий, 1, 30)
   КОНЕЦ,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).Удержание,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).Получатель,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).ПлатежныйАгент,
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).Получатель.Код,
   ВЫБОР
      КОГДА ОтражениеЗПАлименты.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоЗарплате.ВозмещениеУщерба)
         ТОГДА "Удержание"
      ИНАЧЕ ДопРеквизитыВидУдержания.Значение
   КОНЕЦ,
   ПОДСТРОКА(ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).РеквизитыИсполнительногоДокумента, 1, 70),
   ВЫРАЗИТЬ(ОтражениеЗПАлименты.ДокументОснование КАК Документ.ИсполнительныйЛист).ВидИсполнительногоДокумента,
   ОтражениеЗПАлименты.Сумма,
   ДопРеквизитыЛицевойСчет.Значение

пробовал убирать реквизиты через точку, не сильно ускорятся. Тип реквизита ДокументОснование документссылка,
пробовал все исполнительные документы из документа отражение во временную кидать, потом связывать - все равно тормоза.
В базе около 50 организаций. База всего год в работе.
Может у кого есть идеи?

AIFrame

Если за год новых документов этого типа не создавали - тогда да, проблема.
Скуль настраивай.

YuraVK

Цитата: AIFrame от 12 апр 2019, 04:09
Если за год новых документов этого типа не создавали - тогда да, проблема.
Скуль настраивай.
документы то то есть, по каждой организации по 1-2 отражения в месяц, т.е. в районе 1200, исполнительных листов в среднем в каждой организации штуки по 4, т.е. 200-300

Похожие темы (5)

Рейтинг@Mail.ru

Поиск