Еще одна хитрость, которую нужно знать, это разбиение . Посмотрите, как это делается в выбранной вами базе данных, но в основном идея заключается в том, чтобы вы указали своей базе данных держать таблицу разделенной на несколько подтаблиц, каждая с одинаковым определением, основанным на некотором значении.
В вашем случае, что очень полезно, так это "разделение по диапазонам" - выбор раздела на основе диапазона, в который попадает значение. Если вы разбиваете по диапазонам дат, вы можете создавать отдельные вложенные таблицы для каждой недели (или каждого дня, или каждого месяца - в зависимости от того, как вы используете свои данные и сколько их существует).
Это означает, что при указании диапазона дат при выполнении запроса данные, находящиеся за пределами этого диапазона, даже не будут учитываться; это может привести к очень значительной экономии времени, даже лучше, чем индекс (индекс должен учитывать каждую строку, поэтому он будет расти вместе с вашими данными; раздел - один в день).
Это значительно ускоряет как онлайн-запросы (те, которые выдаются при переходе на страницу ASP), так и запросы агрегации, которые вы используете для предварительного расчета необходимой статистики.