SQL Server 2005 按外部引用数据对表进行分区

发布于 2024-09-25 02:45:40 字数 208 浏览 5 评论 0原文

有没有一种规范的方法通过引用数据到另​​一个表来对表进行分区?

例如

timetable
   id
   datetime

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

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

is there a canonical way to partition a table by referenced data to another table?

for example

timetable
   id
   datetime

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

i want to partition bigtable by the datetime in timetable. thankx.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

恋你朝朝暮暮 2024-10-02 02:45:40

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

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

As noted here, he partitioning column must be a part of all unique indexes on the table, which would include your primary key.

I think your only choice here would be to denormalize the timetable.datetime column into bigtable so that the column is available for partitioning.

深居我梦 2024-10-02 02:45:40

分区键必须是正在分区的表的列。如果 timetable 中的 iddatetime 之间存在关联,那么您可以按该 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 值的排名完全匹配。如果您没有这种关联,则必须移动 bigtable 中的 datetime 列,或者重新排列您的 id 以便它们相互关联他是日期时间

Partitioning key must be a column of the table being partitioned. If you have a correlation between id and datetime in timetable then you can partition by that id:

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

then the partitioning ranges (2009-10-01, 2009-10-31), (2009-11-01, 2009-11-30) etc can be expressed in terms of id values: (1,31), (32,62), ... However, this requires that the rank of the id values matches exactly the rank of the datetime values. If you don't have this correlation, then you must either move the datetime column in the bigtable, or rearrange your id so that they correlate wqitht he datetime.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文