Таблица разделов SQL Server 2005 по данным из внешних источников - PullRequest
3 голосов
/ 29 сентября 2010

существует ли канонический способ разделения таблицы по ссылкам на данные другой таблицы?

, например,

timetable
   id
   datetime

bigtable
   id
   timetable_id -- foreign key
   .. other data ..

Я хочу разделить таблицу данных по дате и времени в расписании.Thankx.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

Ключ разделения должен быть столбцом таблицы, которая разбивается на части.Если у вас есть соотношение между id и datetime в timetable, то вы можете разделить по этому идентификатору:

id          datetime
1           20091001
2           20091002
3           20091003
...
32          20091101
33          20091102
...
62          20091201
...

, тогда диапазоны разделения (2009-10-01, 2009-10-31), (2009-11-01, 2009-11-30) и т. Д. Можно выразить в виде значений id: (1,31), (32,62), ... Однако для этого требуется, чтобы рангзначения id точно соответствуют рангу значений datetime.Если у вас нет этой корреляции, то вы должны либо переместить столбец datetime в bigtable, либо переставить ваш id так, чтобы они коррелировали с datetime.

2 голосов
/ 29 сентября 2010

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

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

...