Индекс на строковом столбце в большой базе данных MSSQL - PullRequest
0 голосов
/ 18 мая 2018

Мне нужно спроектировать базу данных для хранения данных измерений производственного процесса.Данные будут собираться из ПЛК.Я хотел бы сохранить эти данные на удаленном сервере, к которому имеют доступ все машины.Я хотел бы сохранить следующие данные:

  • метка времени
  • завод
  • производственная линия
  • станок
  • номер детали
  • единица измерения
  • тип измерения

Некоторые машины имеют одинаковые типы измерений, некоторые имеют уникальные.Является ли это хорошим решением, что я бы сделал столбец measurement type типа VARCHAR и позволил программистам ПЛК освободить руки с именами новых типов измерений без моего вмешательства, чтобы вставить новую запись в соответствующую внешнюю таблицу и передать им новые идентификаторы?Ожидаемое число уникальных типов измерений составляет около 100. Является ли индекс в этом столбце решением для последующей фильтрации и выбора из этой таблицы, которая, как ожидается, будет иметь около 50 миллиардов строк в год?Возможно также, что размер таблицы станет большой проблемой.

РЕДАКТИРОВАТЬ: Должен ли я также отделить значение измерения и тип измерения от другой таблицы, чем информация о детали?

есть ли способ, чтобы SQL-сервер позаботился о добавлении новой measurement type во внутреннюю таблицу и обработке идентификаторов?

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

Привет

1 Ответ

0 голосов
/ 18 мая 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...