| 
    
            
         
         | 
    
    
  | 
Загадка быстродействия подбора товаров в веб клиенте | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        2dolist    
     06.12.16 
            ✎
    12:02 
 | 
         
        Здравствуйте. При выполнении обработки подбора товаров в кабинете клиента через веб интерфейс столкнулся с тормозами при открытии формы. Источник тормозов - запрос для динамического списка номенклатуры с ценами.
 
        Причина в том, что сначала выполняется запрос на нахождение цен на момент времени больше текущего (уже долго выполняется) и если такие цены найдены, то в запрос динамического списка в виртуальную таблицу цен добавляется срез по Периоду, где он - текущая дата. Так вот, открыл я форму подбора через веб клиент и клиент призадумался секунд на 40. Последующие открытия ускорились до ~17-20 секунд. Кстати, почему? С кешем связано? Проверил на тонком клиенте, действительно тормозно, но раза в 2 быстрее, чем в вебе. Попробовал убрать проверку на наличие цен в будущем и просто поставил срез по периоду в виртуальной таблице цен номенклатуры. В тонком клиенте стало открываться относительно живо - быстрее 4 секунд, но в вебе открытие замедлилось до больше минуты! В качестве решения проблемы я запретил цены "на будущее" и в запросе происходит просто срез последних. Это привело к тому, что форма в первый раз открылась за 20 секунд, а последующие открытия секунды за 2-3. Так вот, взял я этот самый запрос и прогнал во внешней обработке с замером времени выполнения как в тонком, так и в веб клиентах. Средние значения получились: В вебе порядка 690 мс для среза по дате и 530 мс для среза последних. В тонком порядка 640 мс для среза по дате и 515 мс для среза последних. Так откуда берётся такая разительная временная разница между просто выполнением запроса и открытием формы? Вообще не пойму. Судя по быстродействию выполнения запросов в обработке, разница в 25-30%. А по открытию формы, на 1-е открытие 300-400%, последующие 3000-4500%.  | 
|||
| 
    1
    
        2dolist    
     06.12.16 
            ✎
    12:05 
 | 
         
        > Так вот, открыл я форму подбора через веб клиент и клиент призадумался секунд на 40. Последующие открытия ускорились до ~17-20 секунд. Кстати, почему? С кешем связано? 
 
        Уточню, что цен на будущие периоды у нас нет, по этому сам запрос для динамической таблицы выполнялся со срезом по последним, а остальное время уходило на поиск цен в будущем чтобы определить надо ли нам делать срез по дате или нет (так в типовой написано).  | 
|||
| 
    2
    
        2dolist    
     06.12.16 
            ✎
    12:08 
 | 
         
        Замер производительности, кстати, показал, что 95% времени уходит именно на запрос, т.е. остальные операции не должны особо влиять.     
         | 
|||
| 
    3
    
        Fragster    
     гуру 
    06.12.16 
            ✎
    12:16 
 | 
         
        недавно в поиске было, как переписать запрос     
         | 
|||
| 
    5
    
        2dolist    
     06.12.16 
            ✎
    12:21 
 | 
         
        так вопрос не как переписать, а почему так     
         | 
|||
| 
    6
    
        Fragster    
     гуру 
    06.12.16 
            ✎
    12:22 
 | 
||||
| 
    7
    
        Fragster    
     гуру 
    06.12.16 
            ✎
    12:22 
 | 
         
        (5) запрос кривой     
         | 
|||
| 
    8
    
        Fragster    
     гуру 
    06.12.16 
            ✎
    12:22 
 | 
         
        веб клиент - тормоз     
         | 
|||
| 
    9
    
        2dolist    
     06.12.16 
            ✎
    12:31 
 | 
         
        ну так проверил же запрос по быстродействию     
         | 
|||
| 
    10
    
        Fragster    
     гуру 
    06.12.16 
            ✎
    12:32 
 | 
         
        (9) 95%, но сколько секунд? вероятно, около 10 из 40 :)     
         | 
|||
| 
    11
    
        PRO100 NigGaZ    
     06.12.16 
            ✎
    12:34 
 | 
         
        rls?     
         | 
|||
| 
    12
    
        Fragster    
     гуру 
    06.12.16 
            ✎
    12:40 
 | 
         
        что-то типа 
 
        выбрать первые 1 1 из РегистрСведений.Цены Где Период > &ДатаПроверки и ТипЦен В (&ТипыЦен)  | 
|||
| 
    13
    
        2dolist    
     06.12.16 
            ✎
    12:58 
 | 
         
        (10) ну я могу кинуть запросы целиком, конечно.     
         | 
|||
| 
    14
    
        2dolist    
     06.12.16 
            ✎
    12:59 
 | 
         
        если интересно, вот под ут 11 обработка, которой я проверял быстродействие результирующего запроса.
 
        https://www.dropbox.com/s/nl3exu0yz7ujoh0/ЗамерПродолжительностиЗапроса.epf?dl=0  | 
|||
| 
    15
    
        2dolist    
     06.12.16 
            ✎
    13:00 
 | 
         
        даже на всякий случай создавал запрос отдельно, а ни менял текст имеющегося.     
         | 
|||
| 
    16
    
        2dolist    
     06.12.16 
            ✎
    13:01 
 | 
         
        (11) всё, что я менял это убирал срез по периоду в виртуальной таблице цен номенклатуры. РЛС не должен был как-то измениться.     
         | 
|||
| 
    17
    
        2dolist    
     06.12.16 
            ✎
    13:22 
 | 
         
        (10) на открытие формы или на выполнение запроса?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |