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

Можно ли ускорить выполнение запроса?

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

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

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

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