Я настраиваю базу данных Azure SQL для загрузки около 1 млн строк в день.
Я планирую загрузить все данные в одну таблицу со следующей структурой:
TAG_NAME | START_DATETIME | END_DATETIME | READING | READING_UOM | INTERVAL_SECS (computed column)
Каждый (TAG_NAME, START_DATETIME, END_DATETIME) уникален. Итак, возможен следующий случай:
TAG_NAME | START_DATETIME | END_DATETIME | READING | READING_UOM | INTERVAL_SECS (computed column)
X | 2020-01-01 01:00:00 | 2020-01-01 02:00:00 | 9.8 | m3 | 3600
X | 2020-01-01 01:00:00 | 2020-01-02 02:00:00 | 232.1 | m3 | 90000
Я планирую создать индексы на TAG_NAME, START_DATETIME и END_DATETIME.
Оттуда я буду создавать представления. Например, представление, которое извлекает все показания за месяц для тегов X, Y и Z.
Затем еще одно представление, которое выводит минутные показания для тегов X, Y и D.
И так далее..
Итак, мой вопрос: влияет ли производительность на загрузку всего в одну таблицу? Должен ли я разделить входные данные на таблицы «минуты», «часы», «месяцы» и т. д.?