У меня есть огромная база данных, в которой есть несколько таблиц, содержащих несколько миллионов записей. Он держит инженерные данные для клиента и постоянно растет. Это влияет на производительность даже при оптимизированной индексации. Поэтому я смотрю на раздел.SQL Server 2008 Table Partitioning
Однако я бы посмотрел на разбиение на версию, хранящуюся в таблице. В это наиболее упрощенной форме таблица состоит из: -
VersionID int
SheetID int
CreationDate datetime
SomeDate nvarchar(255)
Version int
И эти данные будут выглядеть примерно так: -
1, 1, 2010-09-01, blah, 1
2, 1, 2010-09-02, more blah, 2
3, 1, 2010-09-04, blah, 3
4, 2, 2010-09-02, more blah, 1
Для каждого нового изменения в «лист» в системе , в этой таблице добавлена новая запись с новой версией. В идеале я хочу разбить таблицу так, чтобы у меня были лучшие 2 версии для каждого «листа». Поэтому из таблицы выше мне нужны версии 2 & 3 для листа id 2 и версия 1 для id листа 2, а остальные перемещаются в раздел. Из того, что я читал, это не представляется возможным. Я прав или неправ?
Если я ошибаюсь, то следуя за этим, у меня есть куча таблиц, которые все ссылаются на эту таблицу. Они содержат различные версии введенных данных. Могу ли я разбить их на основе раздела «основной» таблицы, или раздел должен быть определен на основе столбца из таблицы, на которую он ссылается?
NB Я не самый активный разработчик SQL, поэтому извиняюсь, если это абсолютно глупый вопрос!
hmmm ... не имеет никакого значения, что это параметрическая база данных со ссылками по ок. 30 таблиц? Похоже, мне нужно снова просмотреть индексы. благодаря – grimorde