Способ хранения часто запрашиваемого столбца в SQLite? - PullRequest
1 голос
/ 11 июля 2011

У меня есть запрос, который включает в себя поиск времени ответа несколько раз подряд, например:

ROUND(AVG(T.FinishTime-T.StartTime),3) AS 'Average', MAX(T.FinishTime-T.StartTime) AS 'Max', MIN(T.FinishTime-T.StartTime)

Теперь я не до конца понимаю, как SQL обрабатывает эти вещи в фоновом режиме, но из моегообщие знания кодирования, не лучше ли сделать вычитание T.FinishTime-T.StartTime более эффективным?то есть можно ли выполнить расчет один раз, а затем найти агрегаты, найденные в этом списке расчетов?Или так уже сделано?Я просто хочу попробовать разбить свои запросы на более эффективные и удобочитаемые фрагменты.Сначала я подумал, что можно создать представление T.FinishTime-T.StartTime и что для этого будут выполнены агрегаты, но потом я прочитал, что представления по-прежнему рассчитываются при каждом их использовании.

Помощь оценена!

1 Ответ

1 голос
/ 08 октября 2011

Почему вы думаете, что вычисление такого простого выражения замедляет ваше приложение на любую значительную сумму?

Преждевременная оптимизация - корень всего зла, говорят они.Вы можете тратить свое время на что-то совершенно неэффективное.Сначала профиль, потом оптимизируй.Если вы не профилируете, не оптимизируйте, точка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...