Таблица разделов SQL Server 2005 по данным из внешних источников

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

например

timetable
   id
   datetime

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

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

2 ответа

Решение

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

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

Ключ секционирования должен быть столбцом таблицы, которая разбивается на части. Если у вас есть корреляция между 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,

Другие вопросы по тегам