Исправлять проблемы приходится не только в “самописных” или молодых конфигурациях.
Даже массовые конфигурации, выпущенные бог знает сколько лет назад, иногда требуют оптимизации…
Наверняка все слышали тезис “Управление Торговлей 10 – почти идеальное решение, там за несколько лет уже все давно вылизано и исправлено”.
Да, решение неплохое, но и в нем есть места, где нужно внимательно присмотреться :)
В сегодняшних видео мы найдем в УТ 10.3 “подозрительный” запрос, проанализируем, что с ним – и аккуратно исправим, с прицелом на будущее.
Кому будет полезна эта серия видео:
- Если Вы внедряете самописные решения – покажем пример оптимизации объемного запроса
- Если Вы внедряете типовые – покажем, как аккуратно вносить изменения.
Видео 1: Как найти неоптимальные запросы
В этом видео мы покажем, как провести анализ подозрительного запроса в типовой УТ.
С помощью SQL Profiler мы получаем план такого запроса и проводим его анализ – в результате находим несколько проблем.
Видео 2: Оптимизация запроса из типовой УТ – решение проблемы сканирования таблицы
В видео показываем пример оптимизации запроса в типовой конфигурации. Обычно это довольно большой запрос, и нужно уметь внести в него точечные изменения.
В результате оптимизации избавляемся от одной проблемы, но в плане запроса появляются другие неоптимальные операции. Их мы решим в следующем видео.
Видео 3: Получение реквизита поля составного типа – причина неоптимального запроса
В рассматриваемом запросе типовой УТ встречается обращение к реквизиту через две точки – штатный функционал запросов “Разымененование полей”.
Разыменование полей составного типа – частая причина медленных запросов. В этом уроке мы показываем, как победить эту проблему.
Видео 4: Как избежать проблем при обновлении конфигурации
При внесении изменений в типовые нужно учитывать, что в будущем они могут обновляться.
В этом видео мы даем несколько советов по модификации типовых конфигураций.
P.S.
Разумеется такая ситуация может произойти и с “доработанной” конфигурацией, что даже более вероятно, ведь редко кто проводит нагрузочное тестирование перед сдачей работ.
Мы же, как всегда, призываем быть бдительными и аккуратными :))
Эта тема детально раскрыта в курсе:
«Ускорение и оптимизация систем на 1С:Предприятие 8.3»
Поддержка – до 4 месяцев. Объем курса – до 35 учебных часов.
Не откладывайте свое обучение!
“Видео 1: Как найти неоптимальные запросы”
Не соответствует названию. Это скорее “КАК определить “а не неоптимальный ли вот этот текущий запрос, находящийся у меня под курсором в не файловой базе””… )))
Вопрос: Почему в 3м видео нет ничего о том, что оптимизация 2 оказалась по производительности хуже чем оптимизация 1? 43 против 40 мс, и 879 чтений против 1074. Есть подозрения, что у автора база была не солидная боевая, а пробная с малым набором данных.
Спасибо.
> Почему в 3м видео нет ничего о том, что оптимизация 2 оказалась по производительности хуже чем оптимизация 1? 43 против 40 мс, и 879 чтений против 1074. Есть подозрения, что у автора база была не солидная боевая, а пробная с малым набором данных.
Так все это видео и посвящено тому, что первая оптимизация ускорила запрос по времени но пострадала бы параллельность работы. Изменив запрос мы на доли секунды его замедлили но зато параллельность не пострадала.
При записи использовалась Demo база УТ, об этом легко догадаться глядя на маленькое время запросов. В большой базе конечно и времена были бы другими и разница после оптимизации была бы существеннее.
Добрый день. Проходил курс с первым потоком, но не припомню, чтобы был такой видеоурок. Материал обновляется? Где можно мониторить информацию об обновлениях? (и этого курса, и других)
Добрый день! Да, курс был дополнен новыми видеоуроками. Они доступны для скачивания на странице с материалами курса (см. Бонусные материалы). Стандартно все обновления/бонусы публикуются на тех же страницах, что и основные материалы курсов, при этом обязательно указывается дата публикации.
Как-то сильно пережали видео. В первом видео код выглядит очень “грязным” и трудночитаемым.
https://i.imgur.com/L4mfnv7.png
Спасибо, проведем эксперименты с компрессией видеопотока.
Поделюсь:
В КА 1.1 так же вынес в виртуальную таблицу запрос к списанным товарам.
В копии базы (на том же сервере 1С, но на другом SQL) ускорение было более чем в 10 раз (база довольно большая).
Перенес настройку в рабочую базу и документ стал проводиться 10 минут!:)
Добавил индексы в вирт. таблицу, и начало проводиться нормально.
Это обычная ситуация, ведь с оптимизацией как и с остальным все индивидуально. В одних условиях переписанный запрос может дать серьезное ускорение, в других разницы вообще не будет или будет замедление.
Именно поэтому я говорю что все нужно проверять на практике именно в ваших условиях и не нужно делать оптимизацию ради самой оптимизации, нужно оптимизировать что бы устранить какую-то проблему.
Кстати если вам помогло создание индексов на временной таблицы, то вероятно это была очень большая временная таблица. В моем примере в таблице было всего несколько строк и не было смысла делать индекс.
В том то и дело что нет, не большая, в среднем в документах 10-20 строк.
В копии на этих же документах не было проблем.
Я согласен, что каждый случай индивидуален, только напрягает, что 1С такая не постоянная. Так, крик души:)
Да, 1С любит преподносить такие сюрпризы :)
Подскажите, а вот если в месте, где вы переделывали обращение через точку, использовать конструкцию типа:
Выбор
Когда ПартииТоваровНаСкладах.ДокументОприходования Ссылка
Документ.ВозвратТоваровОтПокупателя Тогда
Выразить(ПартииТоваровНаСкладах.ДокументОприходования как Документ.ВозвратТоваровОтПокупателя).Дата
Когда ПартииТоваровНаСкладах.ДокументОприходования Ссылка
Документ.РеализацияТоваровУслуг Тогда
Выразить(ПартииТоваровНаСкладах.ДокументОприходования как Документ.РеализацияТоваровУслуг).Дата
Конец
это будет медленнее, чем предложенный вариант?
Попробовал ваш вариант. План получается такой же как и после первой оптимизации, т.к. и запрос по сути такой же. В моей базе запрос с ВЫРАЗИТЬ по времени и логическим чтениям действительно будет быстрее (как и после первой оптимизации), но при этом будут сканироваться таблицы документов которые входят в состав составного типа.
Для маленькой базы которая работает на 8.3 с включенным версионированием RCSI это не проблема, но в других случаях это может привести к проблемам с блокировками. А если база постоянно растет то и нагрузка на диск из-за сканирования тоже будет постоянно возрастать.
Громадное спасибо за проверку и пояснения.
интересно, полезно, Спасибо :)
Большое спасибо за данное видео – это то чего не хватало в курсах по оптимизации (разбор типовой БД)
Планируем по мере накопления практических кейсов пополнять такими разборами курс по оптимизации.
4-е видео не работает. Это только у меня?
Добрый день, Андрей!
Проверка не выявила никаких ошибок при просмотре. Попробуйте перезагрузить страницу или открыть ее в другом браузере.
Здравствуйте, Юлия!
Спасибо за звонок. Отвечаю на Ваш вопрос. К сожалению перезагрузка компьютера сейчас невозможна. Попробовал на 3-х браузерах. Chrome не запускает видео, доходит до 2-й секунды и останавливается бегунок, кэширование видео при этом проходит дальше. Edge видео не показывает в принципе – видны только надписи “Просмотр видео” при клике на них происходит переход в самый верх страницы, “квадраты” где должны быть видео не кликабельны. Под IE заработало нормально. OS – Win 10 x64 для 1-го языка.
В принципе моя проблема решилась, спасибо.
Доброго дня, Андрей.
Рада, что проблему удалось решить. Нам ошибку воспроизвести так и не удалось – на компьютере с аналогичной ОС во всех перечисленных браузерах видео запустилось корректно. Видимо, все-таки ошибка локальная, причину нужно искать именно на Вашем компьютере.
За чей счет проводятся работы по оптимизации и исправлению грубых ошибок в типовых конфигурациях? Заказчик не намерен оплачивать, говорит: “У меня программа лицензионная и я вам целый ИТС проф оплачиваю, вон какие огромные деньги!”
Это вопрос в большей степени политический, зависит в том числе от отношений с заказчиком.
Можно предложить на выбор варианты:
1. Описываем проблему в поддержку 1С далее ждем результатов и исправительного релиза
2. Исправляем сами, но это наша работа – соответственно за деньги.
в любом случае, всё всегда оплачивает клиент. То, что написал Евгений, – имхо это иллюзия, техподдержка будет очень долго думать (очень-преочень долго).
Да, такую поддержку предлагает 1С по линии ИТС.
Если проблема “горит” – это платное решение силами внедренцев.
мне кажется, или это очень сомнительная идея “оптимизировать” типовые запросы, снимать конфу с полной поддержки и всё такое?
Оптимизация типовых часто выполняется на реальных проектах. Это необходимо, если конфигурация не может справиться с задачами конкретного клиента.
Кстати, по итогам работ иногда выходит свежий релиз типовой с соответствующей оптимизацией (естественно с определенной временной задержкой).
Нам бы тоже хотелось, чтобы в типовых не было ошибок и они были бы на 100% оптимальны, но пока это не так.
Кстати, конфигурацию с поддержки как раз не рекомендуем снимать – нужно вносить точечные правки в нужный модуль. У грамотного специалиста не будет проблем с обновлением :)
Не нужно снимать с поддержки – надо включать возможность внесения изменений.
Не так давно выполнял работы по оптимизации расчет себестоимости в УПП – можно оптимизировать… раза в 2-5.