| 
    
            
         
         | 
    
  | 
Можно ли ускорить выполнение запроса? | ☑ | ||
|---|---|---|---|---|
| 
    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 регистров. Гигантомания. Поэтому и время проведения уыеличилось в несколько раз.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |