Имя: Пароль:
1C
 
Можно ли ускорить выполнение запроса?
0 ДНН
 
08.11.20
21:53
Комплексная автоматизация 1.1.
Простейший запрос:
Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ РегистрСведений." + ИмяКлючаАналитики + " КАК Аналитика ГДЕ Аналитика.Ссылка = &КлючАналитики");
Выполняется 700 раз, общее время примерно 2 секунды. ИмяКлючаАналитики может быть равно:
1) АналитикаВидаУчета
2) АналитикаРаспределенияЗатрат
3) АналитикаУчетаЗатрат
4) АналитикаУчетаПартий
5) АналитикаУчетаПрочихЗатрат

В 2-х регистрах примерно по 25 000 записей, в третьем примерно 10 000, в остальных двух меньше 1000.
Ресурс Ссылка проиндексирован во всех регистрах.
Данный запрос лидер в замере производительности. Выполняется 700 раз, потому что в документе 100 строк (то есть чем больше строк, тем больше запросов).
Записей, которые можно удалить из регистров очень мало (меньше 100, это те где помечена на удаление номенклатура).

А если ли возможность ускорить выполнение запроса? Если да, то как?
1 H A D G E H O G s
 
08.11.20
22:17
Время выполнения 1 раза - 2 миллисекунды и меньше. Слишком быстро, я вам не верю.
2 H A D G E H O G s
 
08.11.20
22:17
Вернее, 3 миллисекунды.
3 H A D G E H O G s
 
08.11.20
22:17
Не выполнять его 700 раз
4 ДНН
 
08.11.20
22:22
(1) Так показывает замер производительности. А почему слишком быстро? Если железо хорошее и индекс есть
5 ДНН
 
08.11.20
22:25
(1) Вот 2 первые строки из замера https://priscree.ru/img/6dfa62ddae492c.png
6 H A D G E H O G s
 
08.11.20
22:31
3 мс - это прекрасный результат. Лучше не будет
7 ДНН
 
08.11.20
22:43
(6) Понял, спасибо. Если можно, еще такой вопрос: все ли показывает замер производительности? Например, на скриншоте 2 секунды это примерно 15%. Всего проведение выполняется примерно 14 секунд. Впринципе соответствует. Но если сложить первые строк 100, то даже 10 секунд не наберется. А дальше уже идут записи где время равно 1 мс или даже меньше. Или сюда не попадает время на запись движений в регистры после окончания проведения?
8 ДНН
 
08.11.20
22:50
% в результатах замера - это % от суммы времени в результатах замера? Или где-то фиксируется общее время и это % от этого времени?
9 Фрэнки
 
08.11.20
22:56
это не абсолютно точные замеры.
винда не является системой реального времени
10 H A D G E H O G s
 
08.11.20
23:03
(7) Не задавался этим вопросом.
11 Злопчинский
 
08.11.20
23:11
проведение 14 секунд? и скольбко таких проведений в день/час/минуту?
12 ДНН
 
08.11.20
23:18
(11) В среднем в день таких штук 10. Как правило в них больше 100 строк.
13 H A D G E H O G s
 
08.11.20
23:55
(12) Немного не вкурил вопрос. Да, если наборы записей регистров не записываются кодом, то в замер они не попадут. Смотрите профайлером.
14 timurhv
 
09.11.20
00:31
(7) Там недостоверные данные. Внутренние механизмы на стороне 1С не учитываются.
У самого показывало 4 минуты, а по-факту уходило 6 минут. Где-то статья на ИТС была по этому поводу. Приходилось извращаться и записывать время в микросекундах в массив и потом анализировать.
15 Злопчинский
 
09.11.20
01:06
(12) блин какая тормозная система...
16 hhhh
 
09.11.20
02:42
(15) это всё из-за попыток создать что-то универсальное. Объять  необъятное. Причем пока это выливается в увеличение количества и размеров. Например, раньше у справочника Номенклатура или Контрагенты было 10 реквизитов, сейчас минимум 50. Любой, даже самый маленький документ - это 50 реквизитов в шапке и еще 5 табличных частей по 20 реквизитов каждая. Причем в движениях документа не 3-4 регистра как раньще, а около 20 регистров. Гигантомания. Поэтому и время проведения уыеличилось в несколько раз.