8.х Помогите оптимизировать запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем b7music, 29 окт 2016.

  1. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    Есть форма списка документов, тормозит ужас как. В демо базе где 5-7 документов летает даже на файловой, а в боевой где документов более 1000 тормозит заметно даже на sql. Особенно заметно при RLS.
    Вот сам запрос
    Код:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
        ВЫБОР
            КОГДА ТекущиеЭтапы.Ссылка ЕСТЬ NULL 
                ТОГДА ВЫБОР
                        КОГДА ВыездПрием.Ссылка ССЫЛКА Документ.СЦентр_ПриемВРемонт
                            ТОГДА ЗНАЧЕНИЕ(Справочник.СЦентр_ВидыЭтаповРемонта.ПриемВРемонт)
                        ИНАЧЕ "Выезд мастера"
                    КОНЕЦ
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ПередачаВСтороннийСервисныйЦентр
                ТОГДА "Передача в сторонний сервисный центр"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ВозвратИзСтороннегоСервисногоЦентра
                ТОГДА ЗНАЧЕНИЕ(Справочник.СЦентр_ВидыЭтаповРемонта.ВозвратИзСтороннегоСервисногоЦентра)
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.РасходнаяНакладная
                ТОГДА "Выдача в подмену"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ПриходнаяНакладная
                ТОГДА "Возврат из подмены"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ЗаданиеНаРаботу
                ТОГДА ТекущиеЭтапы.ВидЭтапа
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ЗаказПокупателя
                ТОГДА ТекущиеЭтапы.ВидЭтапа
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ВозвратИзРемонта
                ТОГДА "Возврат из ремонта"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ОтчетПоРаботеУКлиента
                ТОГДА "Отчет о работе у клиента"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ПеремещениеВРемонте
                ТОГДА "Перемещение в ремонте"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ПоступлениеВКассу
                ТОГДА "Оплата от клиента"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ПоступлениеНаСчет
                ТОГДА "Оплата от клиента"
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ЗаявкаНаДоставку
                ТОГДА ВЫБОР
                        КОГДА ТекущиеЭтапы.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.СЦентр_ВидыОперацийЗаявокНаДоставку.ДоставкаОтКлиента)
                            ТОГДА "Доставка от клиента"
                        ИНАЧЕ "Доставка клиенту"
                    КОНЕЦ
        КОНЕЦ КАК ТекущийЭтап,
        ВЫБОР
            КОГДА ТекущиеЭтапы.Ссылка ЕСТЬ NULL 
                ТОГДА ВЫБОР
                        КОГДА ВыездПрием.Ссылка ССЫЛКА Документ.СЦентр_ПриемВРемонт
                            ТОГДА 1
                        ИНАЧЕ 9
                    КОНЕЦ
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ПередачаВСтороннийСервисныйЦентр
                ТОГДА 2
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ВозвратИзСтороннегоСервисногоЦентра
                ТОГДА 3
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ЗаданиеНаРаботу
                    ИЛИ ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ЗаказПокупателя
                ТОГДА 4
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ВозвратИзРемонта
                ТОГДА 5
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ПриходнаяНакладная
                ТОГДА 6
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.РасходнаяНакладная
                ТОГДА 7
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ОтчетПоРаботеУКлиента
                ТОГДА 8
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ПоступлениеВКассу
                ТОГДА 10
            КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.ПоступлениеНаСчет
                ТОГДА 11
        КОНЕЦ КАК НомерТекущегоЭтапа,
        ЕСТЬNULL(СуммаПоДокументам.ОбщаяСумма, 0) КАК СуммаРемонта,
        ВыездПрием.Организация,
        ВыездПрием.СтруктурнаяЕдиница,
        ВыездПрием.Номенклатура,
        ВыездПрием.Характеристика,
        ВыездПрием.ЕдиницаИзмерения,
        ВыездПрием.Этап,
        ВыездПрием.РезультатВыполненияЭтапа,
        ВыездПрием.СуммаДокумента,
        ВыездПрием.Ссылка,
        ВыездПрием.Тип,
        ВыездПрием.СерийныйНомер,
        ВыездПрием.ВалютаДокумента КАК Валюта,
        ВЫБОР
            КОГДА ВыездПрием.Тип = ТИП(Документ.СЦентр_ПриемВРемонт)
                ТОГДА ВыездПрием.Ссылка.ДатаОкончания
            КОГДА ВыездПрием.Тип = ТИП(Документ.СЦентр_ВыездМастера)
                ТОГДА ВыездПрием.Ссылка.ПланДатаОкончания
        КОНЕЦ КАК ДатаОкончания,
        ЗадолженностьПоРемонту.СуммаВалОстаток КАК Задолженность,
        ВыездПрием.Дата КАК Дата,
        ВЫБОР
            КОГДА ДОБАВИТЬКДАТЕ(ВыездПрием.Дата, ДЕНЬ, 7) < &ТекДата
                    И ВЫБОР
                        КОГДА ТекущиеЭтапы.Ссылка ЕСТЬ NULL 
                            ТОГДА ВЫБОР
                                    КОГДА ВыездПрием.Ссылка ССЫЛКА Документ.СЦентр_ПриемВРемонт
                                        ТОГДА 1
                                    ИНАЧЕ 9
                                КОНЕЦ
                        КОГДА ТекущиеЭтапы.Ссылка ССЫЛКА Документ.СЦентр_ПередачаВСтороннийСервисныйЦентр
                            ТОГДА 1
                    КОНЕЦ = 1
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК Просрочка,
        ВыездПрием.Номер,
        ВыездПрием.Ссылка.Контрагент КАК Контрагент,
        ВыездПрием.Ссылка.ВидОперации КАК ВидОперации,
        ВыездПрием.ДатаПросрочки,
        ВыездПрием.Ссылка.Автор КАК Ответственный
    ИЗ
        ЖурналДокументов.СЦентр_ДокументыПоРемонтуИОбслуживанию КАК ВыездПрием
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                РасчетыСПокупателямиОстатки.Договор КАК Договор,
                ВЫБОР
                    КОГДА РасчетыСПокупателямиОстатки.Документ ССЫЛКА Документ.РасходнаяНакладная
                            И (РасчетыСПокупателямиОстатки.Документ.ДокументОснование ССЫЛКА Документ.СЦентр_ПриемВРемонт
                                ИЛИ РасчетыСПокупателямиОстатки.Документ.ДокументОснование ССЫЛКА Документ.СЦентр_ВыездМастера)
                        ТОГДА РасчетыСПокупателямиОстатки.Документ.ДокументОснование
                    КОГДА РасчетыСПокупателямиОстатки.Документ ССЫЛКА Документ.ЗаказПокупателя
                            И (РасчетыСПокупателямиОстатки.Документ.СЦентр_ДокументОснование ССЫЛКА Документ.СЦентр_ПриемВРемонт
                                ИЛИ РасчетыСПокупателямиОстатки.Документ.СЦентр_ДокументОснование ССЫЛКА Документ.СЦентр_ВыездМастера)
                        ТОГДА РасчетыСПокупателямиОстатки.Документ.СЦентр_ДокументОснование
                    ИНАЧЕ РасчетыСПокупателямиОстатки.Документ
                КОНЕЦ КАК Документ,
                РасчетыСПокупателямиОстатки.Контрагент КАК Контрагент,
                РасчетыСПокупателямиОстатки.Организация КАК Организация,
                СУММА(РасчетыСПокупателямиОстатки.СуммаОстаток) КАК СуммаОстаток,
                СУММА(РасчетыСПокупателямиОстатки.СуммаВалОстаток) КАК СуммаВалОстаток
            ИЗ
                РегистрНакопления.РасчетыСПокупателями.Остатки(, ТипРасчетов = ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг)) КАК РасчетыСПокупателямиОстатки
           
            СГРУППИРОВАТЬ ПО
                РасчетыСПокупателямиОстатки.Организация,
                РасчетыСПокупателямиОстатки.Контрагент,
                РасчетыСПокупателямиОстатки.Договор,
                ВЫБОР
                    КОГДА РасчетыСПокупателямиОстатки.Документ ССЫЛКА Документ.РасходнаяНакладная
                            И (РасчетыСПокупателямиОстатки.Документ.ДокументОснование ССЫЛКА Документ.СЦентр_ПриемВРемонт
                                ИЛИ РасчетыСПокупателямиОстатки.Документ.ДокументОснование ССЫЛКА Документ.СЦентр_ВыездМастера)
                        ТОГДА РасчетыСПокупателямиОстатки.Документ.ДокументОснование
                    КОГДА РасчетыСПокупателямиОстатки.Документ ССЫЛКА Документ.ЗаказПокупателя
                            И (РасчетыСПокупателямиОстатки.Документ.СЦентр_ДокументОснование ССЫЛКА Документ.СЦентр_ПриемВРемонт
                                ИЛИ РасчетыСПокупателямиОстатки.Документ.СЦентр_ДокументОснование ССЫЛКА Документ.СЦентр_ВыездМастера)
                        ТОГДА РасчетыСПокупателямиОстатки.Документ.СЦентр_ДокументОснование
                    ИНАЧЕ РасчетыСПокупателямиОстатки.Документ
                КОНЕЦ) КАК ЗадолженностьПоРемонту
            ПО ВыездПрием.Организация = ЗадолженностьПоРемонту.Организация
                И ВыездПрием.Ссылка.Контрагент = ЗадолженностьПоРемонту.Контрагент
                И ВыездПрием.Ссылка = ЗадолженностьПоРемонту.Документ
                И ВыездПрием.Ссылка.Договор = ЗадолженностьПоРемонту.Договор
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                МАКСИМУМ(ЕСТЬNULL(СуммаБезПродаж.ОбщаяСумма, 0)) + СУММА(ЕСТЬNULL(РасходнаяНакладная.СуммаДокумента, 0)) + СУММА(ЕСТЬNULL(ЗаказПокупателя.СуммаДокумента, 0)) КАК ОбщаяСумма,
                СуммаБезПродаж.Ссылка КАК Ссылка
            ИЗ
                (ВЫБРАТЬ
                    МАКСИМУМ(ЕСТЬNULL(СуммаСВозвратами.СуммаСВозвратамиИзСЦ, 0)) + СУММА(ЕСТЬNULL(ЗаданиеНаРаботу.СЦентр_СуммаРемонта, 0)) КАК ОбщаяСумма,
                    СуммаСВозвратами.Ссылка КАК Ссылка
                ИЗ
                    (ВЫБРАТЬ
                        СУММА(ЕСТЬNULL(СЦентр_ВозвратИзСтороннегоСервисногоЦентра.СуммаДокумента, 0)) + МАКСИМУМ(ВЫБОР
                                КОГДА СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СЦентр_ЗаявкаНаДоставку
                                    ТОГДА СЦентр_ЗаявкаНаДоставкуДоставки.Сумма
                                ИНАЧЕ СЦентр_ДокументыПоРемонтуИОбслуживанию.СуммаДокумента
                            КОНЕЦ) КАК СуммаСВозвратамиИзСЦ,
                        СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка КАК Ссылка
                    ИЗ
                        ЖурналДокументов.СЦентр_ДокументыПоРемонтуИОбслуживанию КАК СЦентр_ДокументыПоРемонтуИОбслуживанию
                            ЛЕВОЕ СОЕДИНЕНИЕ Документ.СЦентр_ВозвратИзСтороннегоСервисногоЦентра КАК СЦентр_ВозвратИзСтороннегоСервисногоЦентра
                            ПО СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка = СЦентр_ВозвратИзСтороннегоСервисногоЦентра.ДокументОснование
                                И (СЦентр_ВозвратИзСтороннегоСервисногоЦентра.Проведен)
                            ЛЕВОЕ СОЕДИНЕНИЕ Документ.СЦентр_ЗаявкаНаДоставку.Доставки КАК СЦентр_ЗаявкаНаДоставкуДоставки
                            ПО СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка = СЦентр_ЗаявкаНаДоставкуДоставки.ДокументОснование
                                И (СЦентр_ЗаявкаНаДоставкуДоставки.Ссылка.Проведен)
                    ГДЕ
                        (СЦентр_ДокументыПоРемонтуИОбслуживанию.Тип = ТИП(Документ.СЦентр_ПриемВРемонт)
                                ИЛИ СЦентр_ДокументыПоРемонтуИОбслуживанию.Тип = ТИП(Документ.СЦентр_ВыездМастера))
                        И СЦентр_ДокументыПоРемонтуИОбслуживанию.Проведен
                   
                    СГРУППИРОВАТЬ ПО
                        СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка) КАК СуммаСВозвратами
                        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаданиеНаРаботу КАК ЗаданиеНаРаботу
                        ПО СуммаСВозвратами.Ссылка = ЗаданиеНаРаботу.ДокументОснование
                            И (ЗаданиеНаРаботу.Проведен)
                            И (ЗаданиеНаРаботу.Состояние = ЗНАЧЕНИЕ(Справочник.СостоянияСобытий.Завершено))
               
                СГРУППИРОВАТЬ ПО
                    СуммаСВозвратами.Ссылка) КАК СуммаБезПродаж
                    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная
                    ПО (РасходнаяНакладная.Проведен)
                        И СуммаБезПродаж.Ссылка = РасходнаяНакладная.ДокументОснование
                        И (РасходнаяНакладная.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПродажаПокупателю))
                    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                    ПО СуммаБезПродаж.Ссылка = ЗаказПокупателя.СЦентр_ДокументОснование
                        И (ЗаказПокупателя.Проведен)
                        И (ЗаказПокупателя.СЦентр_ЭтоЭтапРемонта)
           
            СГРУППИРОВАТЬ ПО
                СуммаБезПродаж.Ссылка) КАК СуммаПоДокументам
            ПО ВыездПрием.Ссылка = СуммаПоДокументам.Ссылка
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                МАКСИМУМ(СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка) КАК Ссылка,
                МАКСИМУМ(СЦентр_ДокументыПоРемонтуИОбслуживанию.Этап) КАК ВидЭтапа,
                Временная.ДокументОснование КАК ДокументОснование
            ИЗ
                (ВЫБРАТЬ
                    МАКСИМУМ(ЖурналДокументов.Дата) КАК Дата,
                    ЖурналДокументов.ДокументОснование КАК ДокументОснование
                ИЗ
                    ЖурналДокументов.СЦентр_ДокументыПоРемонтуИОбслуживанию КАК ЖурналДокументов
                ГДЕ
                    (ЖурналДокументов.ДокументОснование ССЫЛКА Документ.СЦентр_ПриемВРемонт
                            ИЛИ ЖурналДокументов.ДокументОснование ССЫЛКА Документ.СЦентр_ВыездМастера)
                    И ЖурналДокументов.Проведен
                    И ВЫБОР
                            КОГДА ЖурналДокументов.Тип = ТИП(Документ.ПриходнаяНакладная)
                                ТОГДА ЖурналДокументов.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПриходнаяНакладная.ВозвратСОтветХранения)
                            КОГДА ЖурналДокументов.Тип = ТИП(Документ.РасходнаяНакладная)
                                ТОГДА ЖурналДокументов.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПередачаНаОтветхранение)
                            КОГДА ЖурналДокументов.Тип = ТИП(Документ.ЗаказПокупателя)
                                ТОГДА НЕ ЖурналДокументов.РезультатВыполненияЭтапа = ЗНАЧЕНИЕ(Справочник.СЦентр_РезультатыВыполненияЭтаповРемонта.ПустаяСсылка)
                            КОГДА ЖурналДокументов.Тип = ТИП(Документ.СчетНаОплату)
                                    ИЛИ ЖурналДокументов.Тип = ТИП(Документ.СЦентр_ПеремещениеВРемонте)
                                ТОГДА ЛОЖЬ
                            КОГДА ЖурналДокументов.Тип = ТИП(Документ.ПоступлениеВКассу)
                                    ИЛИ ЖурналДокументов.Тип = ТИП(Документ.ПоступлениеНаСчет)
                                    ИЛИ ЖурналДокументов.Тип = ТИП(Документ.СчетНаОплату)
                                ТОГДА ЛОЖЬ
                            ИНАЧЕ ИСТИНА
                        КОНЕЦ
               
                СГРУППИРОВАТЬ ПО
                    ЖурналДокументов.ДокументОснование) КАК Временная
                    ЛЕВОЕ СОЕДИНЕНИЕ ЖурналДокументов.СЦентр_ДокументыПоРемонтуИОбслуживанию КАК СЦентр_ДокументыПоРемонтуИОбслуживанию
                    ПО (СЦентр_ДокументыПоРемонтуИОбслуживанию.Дата = Временная.Дата)
                        И (НЕ(СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.ПоступлениеВКассу
                                ИЛИ СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.ПоступлениеНаСчет
                                ИЛИ СЦентр_ДокументыПоРемонтуИОбслуживанию.Ссылка ССЫЛКА Документ.СчетНаОплату))
     Что с ним можно сделать?
            СГРУППИРОВАТЬ ПО
                Временная.ДокументОснование) КАК ТекущиеЭтапы
            ПО ВыездПрием.Ссылка = ТекущиеЭтапы.ДокументОснование
    ГДЕ
        (ВыездПрием.Тип = ТИП(Документ.СЦентр_ПриемВРемонт)
                ИЛИ ВыездПрием.Тип = ТИП(Документ.СЦентр_ВыездМастера))
    
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204
    Логика мне не понятна запроса. Ну и ладно. На первый взгляд избавляйтесь от вложенных запросов. Делайте все через временные таблицы с использованием индексом по которым будет происходить соединение. А затем с удалением временных таблиц. Разрешенные используйте везде где у Вас RLS.
    b7music нравится это.
  3. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    164
    Баллы:
    104
    И кто же додумался делать такой запрос в журнале документов?
    --- Объединение сообщений, 30 окт 2016 ---
    Даже если оптимизировать его, то это вовсе не решение задачи. Динамический список не для этих целей придуман. Вам нужно полностью пересмотреть свою задачу.
    b7music нравится это.
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204
    Ну если динамический список, то тогда временные таблицы там не поддерживаются. Задачу точнее тогда.
    b7music нравится это.
  5. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    Рарус.
    Есть форма списка документов прием в ремонт, Выглядит он так
    Снимок.JPG
    и вот при прокрутке этого списка, задержка до 15-20 секунд, и в это время мой i5 загружен на 25%
    Хотелось бы продолжить использование этого списка, но убрать такие лаги.
    --- Объединение сообщений, 31 окт 2016 ---
    Может есть какой-то конкретный инструмент для замера производительности динамического списка? Понять что именно грузит cpu на 25%.
  6. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204
    Замер производительности...
  7. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    Запускал замер производительности, в режиме отладки тормоза не очень заметны, из под обычного пользователя пишет что нет приложения для отладки, хотя в параметрах сеанса включил отладку. На инфостарте читал ,что в замер производительности данные динамического списка не пишутся...
  8. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204
    А в консоли как этот запрос отрабатывает?
  9. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    консоль запросов выполняет
    Выбратьь первые 500 за 0,339сек
  10. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    164
    Баллы:
    104
    Может дело в условном оформлении? Не удивлюсь, что оно при выводе строки ещё строится.
    А 25% загрузки говорит лишь о том, что ядро/поток загружено на 100% и процесс повис.
    Такой сложный запрос (ещё и отраслевой конфы) добрые люди за просто так вряд ли помогут оптимизировать.
  11. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    Думаете вся проблема в ярких красках? :)
  12. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    164
    Баллы:
    104
    Была похожая проблема - тоже на рарусовкой конфе, Так там при выводе строки всякие запросы ещё делались, чтобы покрасить необходимые строки.
    PS: хотя у вас 8.3, там же нету при выводе строки... тогда ковыряйте запрос =)
  13. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204
    ну тестирование выполняется достаточно просто. Уберите условное оформление, посмотрите результат. Уберите запрос - посмотрите результат. И поймете в чем проблема.
  14. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    Готов обсудить сумму вознаграждения за помощь в оптимизации запроса (в лс). Сдается мне нужно использовать ВЫРАЗИТЬ. Только еще не до конца понимаю))
  15. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204
    Выразить еще больше загрузит сервер. Почему Вы не отлаживаете?
    b7music нравится это.
  16. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    А почему еще больше? В справке той же 1с написано, что наоборот, выразить сократит количество таблиц в левом соединении. Проблема не в оформлении. Убрал вложенный запрос задолжность, производительность немного поднялась.
    --- Объединение сообщений, 1 ноя 2016 ---
    Консоль запросов.
    Админ
    админ.JPG
    Юзер с рлс
    Снимок.JPG
  17. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    Дальше хуже))
    Снимок2.JPG
    Сделал запрос первые 1 в результате сформированный sql запрос аж 5000 строк... -Banghead-
    Statistics: RecordsScanned = 60701, ParseTime = 10615, ExecuteTime = 199, BuffersMemory = 24478, ResultRecords = 1, RecordSize = 47
    Без задолжности
    Statistics: RecordsScanned = 19359, ParseTime = 389, ExecuteTime = 68, BuffersMemory = 24428, ResultRecords = 1, RecordSize = 44
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.901
    Симпатии:
    1.035
    Баллы:
    204
    Оставляешь запрос к основной таблице, постепенно прилепляешь остальное и с RLS замеряешь время - поймешь, на чем больше всего тормозит, то и будешь оптимизировать.
    b7music нравится это.
  19. TopicStarter Overlay
    b7music
    Offline

    b7music Опытный в 1С

    Регистрация:
    21 июн 2016
    Сообщения:
    123
    Симпатии:
    5
    Баллы:
    29
    Оставил только основную таблицу. Результат Выбрать разрешенные первые 1
    Statistics: RecordsScanned = 14670, ParseTime = 973, ExecuteTime = 17, BuffersMemory = 24704, ResultRecords = 1, RecordSize = 34
  20. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.901
    Симпатии:
    1.035
    Баллы:
    204
    Переделывай все условия вида ИЛИ на объединение таблиц.
    b7music нравится это.