Вход | Регистрация

  1  2
1С:Предприятие :: 1С:Предприятие 8 общая

Как быстро найти неоптимальности в запросе (волшебная консоль запросов)

Как быстро найти неоптимальности в запросе (волшебная консоль запросов)
Я
   Demiurg
 
11.10.16 - 22:27
Хочу рассказать о разработке, предназначенной для облегчения написания запросов "без кривизны"
Поскольку наша команда (gilev.ru) специализируется на повышении производительности, то вопрос автоматизации рутинных операций в нашем деле стал достаточно быстро. Очевидно, что повторяющиеся простые действия не надо делать «руками».

Кто бы что на разных курсах не рассказывал «про чудесные секреты», а основным показателем является количество оптимизированных запросов. Просто и банально.

Другими словами, большая часть проблем производительности 1С лежит в неоптимальных запросах. Даже многие блокировки — лишь следствие избыточного сканирования данных неоптимальными запросами.

Поэтому основная задача оптимизации всегда будет в том числе в оптимизации наиболее используемых запросов.
Мы написали свою обработку. Не бог весть что, но работу облегчает.

Но как говориться лучше один раз увидеть https://www.youtube.com/watch?v=q9bKv5LwRdk , чем сто раз услышать.

Поэтому отдаем на Ваш суд нашу консоль запросов, которую можно скачать на главной странице http://www.gilev.ru/#ConsoleGilevRu , на текущий момент это версия http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_1.epf

Нужно настроить консоль согласно инструкции  http://www.gilev.ru/console_setup
Результат анализа отображается на нашем сервере https://isinka.gilev.ru/QueryAnalyzerService/

Важно. Готовы делится бесплатно анализом запросов взамен на Ваш обратный отзыв и рекомендации, а конкретнее:
•    Написать в почту slava@gilev.ru запрос с ссылкой на эту ветку и указать учетную запись в наших сервисах - 10 запросов бесплатно
•    по каждому запросу и обнаруженной рекомендации дать обратную связь нам, насколько ясна рекомендация, помогла ли она - еще 3 запроса бесплатно по каждой обратной связи
•    написать отзыв на своей странице и сообщить нам об этом - 3 месяца безлимита
•    написать отзыв в своем блоге  и сообщить нам об этом- 1 месяц безлимита
•    написать отзыв в своей ленте в социальных сетях  и сообщить нам об этом- 1 неделя безлимита

Я думаю что на экзамене 1С:Эксперт нашей обработкой Вам пользоваться не разрешат – слишком легко сдавать будет 
А вот на наших курсах http://www.gilev.ru/kurs/ можно все , в том числе убедиться насколько это мощный инструмент ускорения любой информационной системы.
Уверен, со временем наш подход, реализованный в этой обработке станет новым стандартом в области оптимизации. Спасибо что дочитали до конца! 

Согласовано с Волшебником
 
 
   Demiurg
 
101 - 13.10.16 - 12:46
(98) т.е. из личного кармана выложить 50 рублей неподъемная сумма?
   Demiurg
 
102 - 13.10.16 - 12:47
(99) а это http://www.gilev.ru/sqlsize/ видели?
   Dotoshin
 
103 - 13.10.16 - 13:28
(101) Если для удовлетворения собственного любопытства, то вполне подъемная, а вот если стоит задача - оптимизировать всю конфигурацию, то там будет не один запрос, а сотня. Думаю вряд ли кто за свой счет захочет заниматься такой оптимизацией, а руководство действительно может не понять, если у него попросить денег. На многих предприятиях у руководства именно такая позиция - "а зачем ты тогда нужен, если сам не можешь с этой задачей справиться".
Руководителям большинства предприятий (не франчей) глубоко по барабану нюансы работы 1с и они не хотят понимать, что оптимизация программного кода это отдельное направление и отдельная специализация.
   WebberNSK
 
106 - 13.10.16 - 13:50
(0) очень тяжелый интерфейс взаимодействия с системой, большие трудозатраты времени для получения "такого" результата.
   vmlspb
 
107 - 13.10.16 - 13:53
посмотрел вашу волшебную консоль.
она и правда "волшебная".

В модуле текст на разных языках, где англ. слова, где латиницей русские, все вперемежку с русскими.

отдельно стоит сказать про использование меток.

был лучшего мнения о команде Гилева
   Demiurg
 
108 - 13.10.16 - 13:54
(103) я не видел ни одного проекта, где бы в течении нескольких месяц было ускорено 100 запросов (хотя в теории ничего сложного нет, но именно из практических соображений)

в реальности по правилу парето хватает десятка запросов, т.е. оптимизируют обычно запросы с большим суммарным временем

10 запросов х 50 руб = 500 руб.
по моему небольшая сумма продемонстрировать работодателю свою профпригодность

во всяком случае многие покупают курсы за 15000-25000 рублей
   Demiurg
 
109 - 13.10.16 - 13:56
(105) https://skynet.gilev.ru/sqlsize/ попробуйте, напишите пожалуйста, получилось ли
   Demiurg
 
110 - 13.10.16 - 13:58
(106) тяжело запрос отправить или прочитать отчет анализа?
 
 Рекламное место пустует
   Demiurg
 
111 - 13.10.16 - 13:59
(107) под какой учеткой отправляли запрос на анализ?
   vmlspb
 
112 - 13.10.16 - 14:01
(111)

я не отправлял запрос, просто скачал и открыл вашу консоль в конфигураторе

Поэтому отдаем на Ваш суд нашу консоль запросов, которую можно скачать на главной странице http://www.gilev.ru/#ConsoleGilevRu , на текущий момент это версия http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_1.epf
   WebberNSK
 
113 - 13.10.16 - 14:02
(110) тот кто может исправить - быстрее прочитает запрос и исправит, для получения таких рекомендаций делать столько действий (особенно лезть в окружение для получения результата анализа) кажется трудоемким.
имхо, массово не взлетит
   Demiurg
 
114 - 13.10.16 - 14:03
(112) нужно выполнить неоптимальный запрос в консоли и потом посмотреть на анализ, чтобы составить мнение
   Demiurg
 
115 - 13.10.16 - 14:04
(113) ну если можете быстрее чем консоль - то она Вам ни к чему
не используйте ее
   vmlspb
 
116 - 13.10.16 - 14:05
(114)

спасибо, после увиденного как написана консоль уже не хочу
   Demiurg
 
117 - 13.10.16 - 14:07
(116) ой, всё ? )
   vmlspb
 
118 - 13.10.16 - 14:10
(117)
ребята, вы такие цены ломите за услуги, и да
ой, все
   Demiurg
 
119 - 13.10.16 - 14:10
(118) а какие цены надо?
   vmlspb
 
120 - 13.10.16 - 14:12
уже никакие, т.к. было сомнение, обращаться к вам за аудитом базы или нет, теперь вопрос решен
   Крэкпэк
 
121 - 13.10.16 - 14:15
(119) Например фиксированная сумма за определенное время:
10 дней, месяц и т.д.
   Demiurg
 
122 - 13.10.16 - 14:16
(121) и какую бы цену хотелось за 10 дней?
   Demiurg
 
123 - 13.10.16 - 14:17
(120) т.е. дело не в цене?
   Крэкпэк
 
124 - 13.10.16 - 14:19
(122) по цене не важно, важно что не надо париться насчет кол-ва запросов
   Крэкпэк
 
125 - 13.10.16 - 14:23
(124) + можно также ограничить общее число запросов
   Demiurg
 
126 - 13.10.16 - 14:24
(124) лимитировано по времени возможность сделать есть, кому надо обращайтесь в почту slava@gilev.ru
   Cyberhawk
 
127 - 13.10.16 - 14:33
(109) Нет, поведение такое же: полоса загрузки (кубики) заставки 1С доходит до третьего с конца кубика и далее начинается какая-то свистопляска: иконка обновления страницы по нескольку раз в секунду меняется на иконку остановки загрузки страницы (крестик). Проц и память процесса Хрома растут в это время пугающе быстро.
Подождал секунд 30 - все прогрузилось.
   Cyberhawk
 
128 - 13.10.16 - 14:35
+(127) Это в режиме инкогнито. В обычном режиме вкладка после этих 30 секунд крашится.
   Мойдодыр
 
129 - 13.10.16 - 14:36
А можно же каждые 10 запросов новую регистрацию делать...
   Cyberhawk
 
130 - 13.10.16 - 14:37
(129) Тебя забанят по айпи :)
   Мойдодыр
 
131 - 13.10.16 - 14:42
За совет или за попытку? )))
   Demiurg
 
132 - 13.10.16 - 15:06
(127) можете в скайп gilev_slava показать проблему? у нас не воспроизводится, но мы заинтересованы ее решить
   Demiurg
 
133 - 13.10.16 - 15:08
(129) можно и в одну учетку периодически давать обратную связь и получать бесплатное продление - это кажется проще чем каждый раз регистрироваться

мы все равно все запросы вручную обрабатываем по бесплатному доступу
 
 
   Demiurg
 
134 - 14.10.16 - 16:42
расскажем про консоль на http://event.infostart.ru/2016/
   Cyberhawk
 
135 - 14.10.16 - 18:49
(132) Могу, но с учетом того, что это только в одном браузере, только на моем ПК и только в режиме "не инкогнито", то вряд ли оно воспроизведется
   nukewin
 
136 - 19.10.16 - 10:05
Вышла новая версия консоли, 1.5.2. Скачать можно тут:
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_2.epf

Исправлен вызов формы выбора типа данных для параметра запроса - учитывается режим использования модальности, введенный в платформу, начиная с версии 8.3.3
   kumena
 
137 - 19.10.16 - 10:24
кино про вашу консоль не смотрел, бегло прочитал отзывы.

у меня есть консолька, которая меряет время исполнения запроса в миллисекундах. когда я вижу, что запрос исполняется неприлично долго - я просто смотрю время исполнения по кускам, а дальше уже дело техники.
я конечно не такой профессионал как вы, но я согласен с H A D G E H O G s
   vis_tmp
 
138 - 19.10.16 - 10:30
(137) Можно твою консольку посмотреть?
   nukewin
 
139 - 19.10.16 - 11:09
И тут же исправили ещё одну ошибку, выпустили версию 1.5.3. Скачать можно тут:
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_3.epf

В ней исправлена ошибка разбора запроса - парсер воспринимал таблицу остатков регистра бухгалтерии (с указанными четырьмя параметрами) как таблицу остатков регистра накопления (у которой может быть максимум 2 параметра), и выдавал ошибку, считая, что переданы лишние параметры.
   Demiurg
 
140 - 19.10.16 - 18:54
(137) если дальше "дело техники", то вам консоль не нужна, но если не победите запрос, вспомните про консоль
   Demiurg
 
141 - 21.10.16 - 17:27
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_4.epf исправили ошибку парсинга с буквой Ё
   Demiurg
 
142 - 24.10.16 - 23:25
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_5.epf добавили возможность анализировать индексы в базе где есть разделители
   Demiurg
 
143 - 30.10.16 - 08:24
выложили обновление 1.5.8 в разделе http://www.gilev.ru/#ConsoleGilevRu
   Demiurg
 
144 - 30.10.16 - 08:25
До 15 декабря стартовал конкурс с призом - НОУТБУК! Нужно оказаться "умнее" нашей консоли и продемонстрировать случай когда наш инструмент не сможет проанализировать неоптимальность. Приз получит самый активный. В конкурсе может принять участие каждый желающий.

На время действия конкурса до 15 декабря любой желающий может использовать консоль бесплатно.
Для участия можно использовать либо свою учетную запись в сервисах http://www.gilev.ru/online/ либо использовать учетную запись "Пользователь" в настройках консоли.

Если Вы отправляете данные под записью "Пользователь", то смотреть результаты нужно в https://isinka.gilev.ru/QueryAnalyzerService/ указав в качестве пользователя "Пользователь" без пароля.
Примечание. Приз будет выдан в Москве.
   wormselfish
 
145 - 30.10.16 - 09:40
(0) Как я понимаю, эта обработка предназначена для новичков, которые не знают принципов оптимизации запросов. Обработка их этому обучает, то есть подсказывает то что делали бы опытные 1Сники.
Таким образом, можно сэкономить на квалифицированных работниках наняв студентов, и заставив их пользоваться этой обработкой.
Еще была бы обработка проверяющая качество текста модулей, было бы здорово!
   Demiurg
 
146 - 30.10.16 - 18:04
(145) пока ни кто не смог продемонстрировать свою квалификацию выше результатов обработки, не только новички

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

при выходе новой функциональности будем об этом оповещать
   H A D G E H O G s
 
147 - 30.10.16 - 18:06
(144) Давайте я попробую без всяких ноутбуков.

Документ проводиться/распроводиться долго и печально, так как пересчитывает остатки с начала времен регистра накопления миллионами быстрых запросов update
   Demiurg
 
148 - 31.10.16 - 08:38
(147) и в чем смысл сообщения? к оптимизации запросов это прямого отношения не имеет
сама проблема обнаруживается и выдается информации о ее наличии сервисом http://www.gilev.ru/sqlsize/
   ice777
 
149 - 31.10.16 - 08:47
(0) база на постгри.. план запроса?
Или это только для ms sql ?
 
 Рекламное место пустует
   Demiurg
 
150 - 31.10.16 - 12:27
(149) как только наберем критическую массу, сделаем и для постгре, пока не востребовано, только скуль
   Demiurg
 
151 - 01.11.16 - 17:33
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_9.epf

1) В форму настроек добавлена галочка для конкурса чтобы не регистрироваться в сервисах
2) При возникновении лексических ошибок выводится сообщение в удобочитаемой форме с описанием возможных ошибок (ситуация с "{")
3) Исправлен парсер запросов - учтено, что некоторые идентификаторы могут начинаться с символа "_" (подчёрк)
   Demiurg
 
152 - 01.11.16 - 17:57
Обновление по конкурсу: обнаруженный недоанализ повторяющихся сложных вложений в алгоритме пока не реализован, но новыми претендентами на ноутбук заявляться не может, он начислен плюсом пользователю MJack
   Bober
 
153 - 01.11.16 - 18:29
жаль что на конференции об этом не рассказали на основном докладе (все вскользь на табуретах второго этажа).
   Demiurg
 
154 - 01.11.16 - 20:16
(153) 28го в 11.30 Дмитрий Юхтимовский в малом зале  показывал консоль, можно на записи найти
   Bober
 
155 - 01.11.16 - 21:20
(154) в малом зале что-то разглядеть на сайдах было крайне трудно.
   Fragster
 
156 - 02.11.16 - 00:04
(155) с первых рядов отлично видно
   Bober
 
157 - 02.11.16 - 00:14
(156) не всем повезло быть в нужных ряда., по ощущениям во втором зале проектор был слабоват.
   Demiurg
 
158 - 02.11.16 - 06:42
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_10.epf
1)  Исправлен анализ функции ТИП()
2)  Доработан парсинг конструкции "Аргумент В (Значение1, Значение2,... ЗначениеN)

Примечание к конкурсу. Из нереализованного, но уже обнаруженного снимается для новых участников снимается анализ конструкций типа ЕСТЬNULL вставлять неоптимальные аргументы, а также проверка избыточных колонок во вложенном запросе, проверку на NULL при отсутствии соединений
   Demiurg
 
159 - 02.11.16 - 07:06
(157) если Вы там были, то на инфостарте доступно Вам видео
изображение было засвеченным, не хватало баланса и контрастности, но рассмотреть можно было

мы наш доклад с разрешения организаторов готовы выложит на сайт
   Bober
 
160 - 02.11.16 - 09:43
(159) жду доработку консоли для работы с СКД.
   Demiurg
 
161 - 07.11.16 - 11:27
(160) убираете инструкции {} из запроса и работаете спокойно
сделать автоматически это телодвижение в консоли записано, при выходи оповестим
ПРОДОЛЖАЕТСЯ КОНКУРС С ПРИЗОМ НОУТБУК
подробности по ссылке http://catalog.mista.ru/public/556589/

все кто кричали что умнее консоли на практике "сдулись"
НИ ОДИН УЧАСТНИК КОНКУРСА НЕ СМОГ ПОКА НАЙТИ СУЩЕСТВЕННЫХ МЕСТ ДЛЯ ОПТИМИЗАЦИИ НЕ ОБНАРУЖЕННЫХ КОНСОЛЬЮ!
   Demiurg
 
162 - 09.11.16 - 10:24
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_12.epf
улучшена работа в нештатных ситуациях, например когда собирается некорректный или не полный состав логов технологического журнала
улучшен замер времени, включая замер пакетов
исправлен анализ набора данных на вхождение в подзапрос
   Demiurg
 
163 - 10.11.16 - 16:06
заявку  в гонке за ноутбук внесли пользователи centrab с уточнением рекомендации по порядку полей
и ДЛ с оптимизацией разнотипных параметров
   Demiurg
 
164 - 14.11.16 - 11:55
выложена новая версия 1.5.14
исправлена работа с константами и разделителем ;
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_14.epf
   romix
 
Модератор
165 - 14.11.16 - 12:17
Профилировщик запросов - замечательная идея.

Я вот думаю, а если пришпилить к каждому запросу (например в комментарии) тестовые параметры, то можно было бы автоматом проходить все запросы конфигурации.

Оно бы например за ночь отпрофилировало, а утром выдало простыню, где там индекс не совпадает, где чего, а где сам запрос поломался (например, в результате изменения метаданных).
   Demiurg
 
166 - 14.11.16 - 13:54
(165) этим мы занимаемся пока в "закрытом" режиме, делать ревью-тестирование на порядок сложнее
   romix
 
167 - 15.11.16 - 11:16
(166) Там сложность, пожалуй, в том, что невозможно просто так угадать тестовые случаи. Можно насобирать реальных пользовательских запросов, но ведь и сами пользователи могут ошибаться (например, по ошибке задавать слишком большие выборки данных). Как отличить плохие запросы от хороших и хотя бы показать пользователю предупреждение - пока не совсем понятно.
   Demiurg
 
168 - 16.11.16 - 15:30
(167) у нас два алгоритма, проактивный и реактивный
проактивный целиком построен на вероятностях
   Demiurg
 
169 - 16.11.16 - 15:31
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_15.epf исправлены ошибки при парсинге
   Demiurg
 
170 - 16.11.16 - 20:13
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_16.epf добавлена обработка ДЛЯ ИЗМЕНЕНИЯ
   Demiurg
 
171 - 18.11.16 - 09:38
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_17.epf

Добавлена возможность анализа метаданных графов журналов документов
 Добавлена возможность анализа метаданных последовательностей
 Исправлен парсинг конструкции ВЫБРАТЬ (расширенный синтаксис)
 Исправлен парсинг конструкции ИТОГИ ПО ОБЩИЕ
 Исправлен парсинг конструкции ИТОГИ ПО - учтено, что у контрольных точек итогов могут быть псевдонимы
 Исправлен парсинг конструкции АВТОУПОРЯДОЧИВАНИЕ - учтено, что она может быть в любом месте запроса - до УПОРЯДОЧИТЬ, после УПОРЯДОЧИТЬ, до ИТОГИ, после ИТОГИ
   Demiurg
 
172 - 21.11.16 - 13:50
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_18.epf

Добавлена возможность анализа метаданных регистров расчета
   Demiurg
 
173 - 23.11.16 - 16:22
http://www.gilev.ru/1c/cloud/GilevRu_Console_1_5_19.epf
Исправлена ошибка анализа типа данных полей из запроса с созданием временной таблицы, когда имя создаваемой таблицы совпадает с псевдонимом таблицы, из которой создается эта временная таблица.
  1  2

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует