2013-07-29 2 views
0

Я работаю в проекте, где мне нужно рассчитать некоторые средние значения на основе взаимодействия пользователей на сайте.Когда полезно хранить агрегированные данные в SQL

Теперь количество записей, которые должны быть рассчитаны, может быть от нескольких до нескольких тысяч.

Вопрос в том, на каком пороге было бы целесообразно хранить агрегированные данные в отдельной таблице и через обновление процедуры хранилища, которое значение каждый раз, когда генерируется новая запись, а не просто вычисляется каждый раз, когда это необходимо?

Заранее спасибо.

+0

У вас возникли проблемы с производительностью? Сначала я попытаюсь оптимизировать свои запросы, прежде чем делать такие вещи. – jsalonen

+1

Ваш вопрос не может быть отвечен, если вы не хотите личных мнений, нет порога как такового, вы строите вещи в соответствии с потребностями, и вы компенсируете время дополнительным пространством и т. Д. На ваш вопрос возникает слишком много других вопросов, которые также будут считаться исходя из. –

+0

Это зависит от множества особенностей, включая такие вещи, как приемлемое время отклика, насколько это касается ваших пользователей. –

ответ

1

Не делайте этого, пока у вас не возникнут проблемы с производительностью, вызванные временем, которое требуется для объединения ваших данных.

Тогда сделайте это.

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

+0

Это звучит как путь, спасибо! – Rasmus

1

Вам необходимо взвесить потребность в текущих данных и необходимостью быстрой передачи данных. Если вам абсолютно нужны текущие данные, вам придется жить с большими задержками в ваших запросах. Если вам абсолютно нужны ваши данные как можно скорее, вам придется иметь дело со старыми данными.

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

Смежные вопросы