Пример неоптимальности в типовой конфигурации – как найти и исправить



Исправлять проблемы приходится не только в “самописных” или молодых конфигурациях.

Даже массовые конфигурации, выпущенные бог знает сколько лет назад, иногда требуют оптимизации

Наверняка все слышали тезис “Управление Торговлей 10 – почти идеальное решение, там за несколько лет уже все давно вылизано и исправлено”.

Да, решение неплохое, но и в нем есть места, где нужно внимательно присмотреться :)

В сегодняшних видео мы найдем в УТ 10.3 “подозрительный” запрос, проанализируем, что с ним – и аккуратно исправим, с прицелом на будущее.

Кому будет полезна эта серия видео:

  • Если Вы внедряете самописные решения – покажем пример оптимизации объемного запроса
  • Если Вы внедряете типовые – покажем, как аккуратно вносить изменения.

Видео 1: Как найти неоптимальные запросы

В этом видео мы покажем, как провести анализ подозрительного запроса в типовой УТ.

С помощью SQL Profiler мы получаем план такого запроса и проводим его анализ – в результате находим несколько проблем.

Видео 2: Оптимизация запроса из типовой УТ – решение проблемы сканирования таблицы

В видео показываем пример оптимизации запроса в типовой конфигурации. Обычно это довольно большой запрос, и нужно уметь внести в него точечные изменения.

В результате оптимизации избавляемся от одной проблемы, но в плане запроса появляются другие неоптимальные операции. Их мы решим в следующем видео.

Видео 3: Получение реквизита поля составного типа – причина неоптимального запроса

В рассматриваемом запросе типовой УТ встречается обращение к реквизиту через две точки – штатный функционал запросов “Разымененование полей”.

Разыменование полей составного типа – частая причина медленных запросов. В этом уроке мы показываем, как победить эту проблему.

Видео 4: Как избежать проблем при обновлении конфигурации

При внесении изменений в типовые нужно учитывать, что в будущем они могут обновляться.

В этом видео мы даем несколько советов по модификации типовых конфигураций.

P.S.

Разумеется такая ситуация может произойти и с “доработанной” конфигурацией, что даже более вероятно, ведь редко кто проводит нагрузочное тестирование перед сдачей работ.

Мы же, как всегда, призываем быть бдительными и аккуратными :))

Эта тема детально раскрыта в курсе:

«Ускорение и оптимизация систем на 1С:Предприятие 8.3»

Поддержка – до 4 месяцев. Объем курса – до 35 учебных часов.

Не откладывайте свое обучение!

27 комментариев к “Пример неоптимальности в типовой конфигурации – как найти и исправить

  1. Дмитрий сказал:

    “Видео 1: Как найти неоптимальные запросы”
    Не соответствует названию. Это скорее “КАК определить “а не неоптимальный ли вот этот текущий запрос, находящийся у меня под курсором в не файловой базе””… )))

    Вопрос: Почему в 3м видео нет ничего о том, что оптимизация 2 оказалась по производительности хуже чем оптимизация 1? 43 против 40 мс, и 879 чтений против 1074. Есть подозрения, что у автора база была не солидная боевая, а пробная с малым набором данных.
    Спасибо.

    • Андрей Бурмистров сказал:

      > Почему в 3м видео нет ничего о том, что оптимизация 2 оказалась по производительности хуже чем оптимизация 1? 43 против 40 мс, и 879 чтений против 1074. Есть подозрения, что у автора база была не солидная боевая, а пробная с малым набором данных.

      Так все это видео и посвящено тому, что первая оптимизация ускорила запрос по времени но пострадала бы параллельность работы. Изменив запрос мы на доли секунды его замедлили но зато параллельность не пострадала.
      При записи использовалась Demo база УТ, об этом легко догадаться глядя на маленькое время запросов. В большой базе конечно и времена были бы другими и разница после оптимизации была бы существеннее.

  2. Andrefan сказал:

    Добрый день. Проходил курс с первым потоком, но не припомню, чтобы был такой видеоурок. Материал обновляется? Где можно мониторить информацию об обновлениях? (и этого курса, и других)

    • Юлия Толстых сказал:

      Добрый день! Да, курс был дополнен новыми видеоуроками. Они доступны для скачивания на странице с материалами курса (см. Бонусные материалы). Стандартно все обновления/бонусы публикуются на тех же страницах, что и основные материалы курсов, при этом обязательно указывается дата публикации.

    • Евгений Гилев (Мастер-тренер) сказал:

      Спасибо, проведем эксперименты с компрессией видеопотока.

  3. SomeOne сказал:

    Поделюсь:
    В КА 1.1 так же вынес в виртуальную таблицу запрос к списанным товарам.
    В копии базы (на том же сервере 1С, но на другом SQL) ускорение было более чем в 10 раз (база довольно большая).
    Перенес настройку в рабочую базу и документ стал проводиться 10 минут!:)
    Добавил индексы в вирт. таблицу, и начало проводиться нормально.

    • Андрей Бурмистров сказал:

      Это обычная ситуация, ведь с оптимизацией как и с остальным все индивидуально. В одних условиях переписанный запрос может дать серьезное ускорение, в других разницы вообще не будет или будет замедление.
      Именно поэтому я говорю что все нужно проверять на практике именно в ваших условиях и не нужно делать оптимизацию ради самой оптимизации, нужно оптимизировать что бы устранить какую-то проблему.
      Кстати если вам помогло создание индексов на временной таблицы, то вероятно это была очень большая временная таблица. В моем примере в таблице было всего несколько строк и не было смысла делать индекс.

      • SomeOne сказал:

        В том то и дело что нет, не большая, в среднем в документах 10-20 строк.

        В копии на этих же документах не было проблем.

        Я согласен, что каждый случай индивидуален, только напрягает, что 1С такая не постоянная. Так, крик души:)

  4. Сураев Игорь сказал:

    Подскажите, а вот если в месте, где вы переделывали обращение через точку, использовать конструкцию типа:
    Выбор
    Когда ПартииТоваровНаСкладах.ДокументОприходования Ссылка
    Документ.ВозвратТоваровОтПокупателя Тогда
    Выразить(ПартииТоваровНаСкладах.ДокументОприходования как Документ.ВозвратТоваровОтПокупателя).Дата

    Когда ПартииТоваровНаСкладах.ДокументОприходования Ссылка
    Документ.РеализацияТоваровУслуг Тогда
    Выразить(ПартииТоваровНаСкладах.ДокументОприходования как Документ.РеализацияТоваровУслуг).Дата
    Конец
    это будет медленнее, чем предложенный вариант?

    • Андрей Бурмистров сказал:

      Попробовал ваш вариант. План получается такой же как и после первой оптимизации, т.к. и запрос по сути такой же. В моей базе запрос с ВЫРАЗИТЬ по времени и логическим чтениям действительно будет быстрее (как и после первой оптимизации), но при этом будут сканироваться таблицы документов которые входят в состав составного типа.
      Для маленькой базы которая работает на 8.3 с включенным версионированием RCSI это не проблема, но в других случаях это может привести к проблемам с блокировками. А если база постоянно растет то и нагрузка на диск из-за сканирования тоже будет постоянно возрастать.

  5. Филимонов Иван сказал:

    Большое спасибо за данное видео – это то чего не хватало в курсах по оптимизации (разбор типовой БД)

    • Евгений Гилев (Мастер-тренер) сказал:

      Планируем по мере накопления практических кейсов пополнять такими разборами курс по оптимизации.

    • Юлия Толстых сказал:

      Добрый день, Андрей!
      Проверка не выявила никаких ошибок при просмотре. Попробуйте перезагрузить страницу или открыть ее в другом браузере.

      • Андрей Наконечный сказал:

        Здравствуйте, Юлия!
        Спасибо за звонок. Отвечаю на Ваш вопрос. К сожалению перезагрузка компьютера сейчас невозможна. Попробовал на 3-х браузерах. Chrome не запускает видео, доходит до 2-й секунды и останавливается бегунок, кэширование видео при этом проходит дальше. Edge видео не показывает в принципе – видны только надписи “Просмотр видео” при клике на них происходит переход в самый верх страницы, “квадраты” где должны быть видео не кликабельны. Под IE заработало нормально. OS – Win 10 x64 для 1-го языка.
        В принципе моя проблема решилась, спасибо.

        • Юлия Толстых сказал:

          Доброго дня, Андрей.
          Рада, что проблему удалось решить. Нам ошибку воспроизвести так и не удалось – на компьютере с аналогичной ОС во всех перечисленных браузерах видео запустилось корректно. Видимо, все-таки ошибка локальная, причину нужно искать именно на Вашем компьютере.

  6. ivanovav1983 сказал:

    За чей счет проводятся работы по оптимизации и исправлению грубых ошибок в типовых конфигурациях? Заказчик не намерен оплачивать, говорит: “У меня программа лицензионная и я вам целый ИТС проф оплачиваю, вон какие огромные деньги!”

    • Евгений Гилев (Мастер-тренер) сказал:

      Это вопрос в большей степени политический, зависит в том числе от отношений с заказчиком.

      Можно предложить на выбор варианты:
      1. Описываем проблему в поддержку 1С далее ждем результатов и исправительного релиза
      2. Исправляем сами, но это наша работа – соответственно за деньги.

    • Tyushin сказал:

      в любом случае, всё всегда оплачивает клиент. То, что написал Евгений, – имхо это иллюзия, техподдержка будет очень долго думать (очень-преочень долго).

      • Евгений Гилев (Мастер-тренер) сказал:

        Да, такую поддержку предлагает 1С по линии ИТС.
        Если проблема “горит” – это платное решение силами внедренцев.

  7. Tyushin сказал:

    мне кажется, или это очень сомнительная идея “оптимизировать” типовые запросы, снимать конфу с полной поддержки и всё такое?

    • Евгений Гилев (Мастер-тренер) сказал:

      Оптимизация типовых часто выполняется на реальных проектах. Это необходимо, если конфигурация не может справиться с задачами конкретного клиента.

      Кстати, по итогам работ иногда выходит свежий релиз типовой с соответствующей оптимизацией (естественно с определенной временной задержкой).

      Нам бы тоже хотелось, чтобы в типовых не было ошибок и они были бы на 100% оптимальны, но пока это не так.

      Кстати, конфигурацию с поддержки как раз не рекомендуем снимать – нужно вносить точечные правки в нужный модуль. У грамотного специалиста не будет проблем с обновлением :)

    • Крынецкий Александр сказал:

      Не нужно снимать с поддержки – надо включать возможность внесения изменений.
      Не так давно выполнял работы по оптимизации расчет себестоимости в УПП – можно оптимизировать… раза в 2-5.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Мы используем файлы cookies, чтобы сделать сайт удобнее.
Продолжая просмотр сайта, Вы соглашаетесь с их использованием.
Подробнее