Как реализовать разбиение модов на sql server 2008 r2? - PullRequest
0 голосов
/ 25 ноября 2010

Возможно, я собираюсь реализовать разбиение на огромную таблицу (миллиарды строк).

Каждая строка таблицы имеет определенный статус определенного устройства, который вставляется с минуты на минуту.Следовательно, будет 1440 (24 x 60) строк в день на устройство.Каждое устройство имеет уникальный идентификатор (DeviceID).

Я думал о разделении с помощью DeviceID MOD {TheNumberOfPartitionsThatIWant}, я думаю, что значение NumberOfPartitionsThatIWant 250 - хороший компромисс.Используя эту стратегию, я могу равномерно распределить устройства по разделам, а также, при запросе к конкретному устройству, обработчику запросов просто нужно коснуться одного раздела, а не всех 250 разделов.

Проблема в том, что мне нужно добавить дополнительный столбец в мою таблицу, просто чтобы указать раздел, которому принадлежит строка, чтобы я мог определить таблицу в схеме разделов, используя этот столбец.Было бы гораздо лучше добавить (DeviceID MOD 250) в схему разделов, вместо того, чтобы иметь этот столбец с таким простым выражением.Есть ли обходной путь для этого?

Ответы [ 3 ]

2 голосов
/ 25 ноября 2010

Вы можете разбить вычисляемый столбец, привязанный к схеме, на основе функции - однако, хотя это работает, преимущества будут ограничены, и я хотел бы увидеть масштабный тест на нем. Затем также требуется, чтобы каждый доступ к этой таблице использовал ту же функцию в пределах критерия where.

Ключевым моментом является dportas - разделение предназначено для того, чтобы сделать устаревание данных тривиальной операцией, в какой-то момент данные в системе необходимо будет удалить из-за того, что они слишком старые / не имеют значения, после чего вы сокращены до длительных удалений для удаления этих данных.

С точки зрения распределения данных по нескольким дискам, разбиение не предоставляет ничего существенно дополнительного для существующих файловых групп / файловых средств.

0 голосов
/ 21 декабря 2010

Я создал вычисляемый столбец, решил проблему.

0 голосов
/ 25 ноября 2010

Подходящая индексация, вероятно, даст вам лучшие результаты, чем разбиение.Как говорит @Andrew, разметка предназначена главным образом для быстрой загрузки и выгрузки данных (то есть для переключения между разделами).

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