|
Загадка быстродействия подбора товаров в веб клиенте | ☑ | ||
---|---|---|---|---|
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) на открытие формы или на выполнение запроса?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |