Я выполняю множество различных SELECT из SQLite VIEW (динамическая таблица), используя цикл на Python.Базовый запрос SQL для VIEW занимает около 5 секунд.Согласно моему нынешнему пониманию, ПРОСМОТР пересчитывается каждый раз, когда я выполняю ВЫБОР из него.Поскольку в цикле Python я не обновляю никаких таблиц, мне интересно, есть ли способ «заморозить» (предварительно рассчитать) VIEW как статическую таблицу, выполнить быстрые SELECT из нее и после «освобождения» ее.
До этого я пытался оптимизировать базовый код запроса VIEW и сумел сократить время выполнения с 16 до 5 секунд.Я пытался также найти в Интернете команды, похожие на «BEGIN;»и "COMMIT;"которые отлично справляются с задачей обновления таблиц, но не могут их найти.
Мой запрос, который я выполняю из цикла Python, выглядит следующим образом:
SELECT date, spread FROM futures_spreads_close
WHERE commodity_id=? AND exp_month_id=? AND exp_year=?
ORDER BY date;
, где метки вопросов - этоиндексы цикла.
Если я заново внедряю всю логику из VIEW в код Python, я могу потерять около 100 раз.Тем не менее, я хотел бы сохранить всю логику внутри SQL.Я считаю, что есть более эффективный способ выполнения запросов в VIEW.