около 1 минуты. Для того, чтобы ускорить это дело, создается DICTIONARY со временем обновления, скажем, раз в 2 часа. Дропаю старый словарь, создаю новый, все ок. Но когда я делаю
system reload dictionary мой_словарь,
то время первичной перезагрузки словаря занимает от 10 до 20 минут. Почему так, ведь сам запрос изначальный отрабатывает за минуту? Плюс к этому в логах видно, что запрос начинает кушать память (peak_memory_usage из system.processes), вплоть до 20 Гб....
Версия: 22.3.2.1
1 минута - это не так уж и много. Словарь готовится вам помочь ускорить часовой запрос. Поэтому читает много данных и тщательно строит свои структуры в памяти. Попробуйте другой тип хранения (скажем array вместо hashed) - будет быстрее грузиться и меньше памяти занимать, а по скорости вы скорее всего и не заметите.
Когда это проходит на веб странице, где пользователь выбирает параметры в фильтрах, и эти фильтры грузятся по минуте - это долго :)
ну так закэшируйте на сайте фильтры
system reload dictionary работает хитро, там предыдущее состояние хранится чтобы отвечать на запросы пока идет обновление. а зачем словарь? может попроще как-то сделать?
Дело в том, что такая беда именно при первом создании словаря. То есть предыдущего состояния как бы и нет. ..
Обсуждают сегодня