У нас есть 2 таблицы.Один содержит измерения, другой - временные метки (по одной на каждую минуту), каждое измерение содержит FK к временной метке.У нас есть 8 миллионов (миллион) измерений и 2 миллиона временных меток.
Мы создаем базу данных отчетов с помощью репликации, и мое первое решение состояло в следующем: когда новое измерение было получено в процессе репликации, найдите правильную временную метку идобавьте его в таблицу измерений.Да, это дублирование данных, но это для отчетности, и поскольку у нас есть измерения каждые 5 минут, и пользователи могут запрашивать годовые данные (105 000 измерений), мы должны оптимизировать скорость.
Но один из разработчиков сказал: вам не нужно этого делать, мы просто запросим соединение (по двум таблицам), SqlServer настолько быстр, что вы не видите разницы.
Моя первая реакция была:объединение двух таблиц с записями 8М и 2М не может иметь значения «без разницы».
Каково ваше первое чувство по этому поводу?
РЕДАКТИРОВАТЬ: новые измерения: 400 записей за 5 минут
РЕДАКТИРОВАТЬ 2: возможно, вопрос не так ясен:
первое решение состоит в том, чтобы получить данные из таблицы временных меток и скопировать их в таблицу измерений после вставки записи измерений.В этом случае у нас есть действие, когда запись вставлена И дополнительное (дублированное) значение метки времени.В этом случае мы запрашиваем ОДНУ таблицу только потому, что она содержит все данные.
Второе решение - объединить две таблицы в запросе.