SQL Server 2005分区表由外部引用的数据组成

时间:2010-09-29 15:42:35

标签: sql-server sql-server-2005 partitioning

有一种规范的方法可以将引用数据分区到另一个表吗?

例如

timetable
   id
   datetime

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

我想在时间表中按日期时间对bigtable进行分区。 thankx。

2 个答案:

答案 0 :(得分:2)

如上所述here,他的分区列必须是表格中所有唯一索引的一部分,其中包括您的主键。

我认为您在这里唯一的选择是将timetable.datetime列反规范化为bigtable,以便该列可用于分区。

答案 1 :(得分:2)

分区键必须是要分区的表的列。如果您在id中的datetimetimetable之间存在相关性,那么您可以按该ID进行分区:

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相关联。< / p>