В моей текущей хранимой процедуре я беру данные как из текущей таблицы данных, так и из таблицы архивных данных, где я «объединяю все» операторы Select из обоих источников.
Однако выполнение процедуры занимает много времени, поэтому я думал о способах оптимизации производительности. В моем случае я решил сделать условную проверку, существуют ли архивные данные или нет.
В моем случае данные архивируются, если они превышают 45-дневный лимит с текущего дня.
Для простоты ниже приведены 2 упрощенных случая. Если пользователь выбирает текущий месяц (в нашем случае май, а 02.05 — текущий день), диапазон дат будет только в текущем наборе данных, поскольку мы еще не нарушили 45-дневный лимит (между 01.05 и 31.05). . То же самое относится и к апрелю (диапазон дат между 01.04 и 30.04), так как 30 дней все еще находятся в 45-дневном лимите + 2 дня от мая.
Однако, если пользователь выбирает март в текущий день, некоторые из его дней превысят лимит в 45 дней (диапазон дат между 01.03 и 31.03), и в этом случае мне нужно будет просмотреть архивные данные. и объединить все с текущими данными.
Мои вопросы заключаются в следующем: Как лучше всего проверить, превышает ли диапазон дат ограничение в n дней?