我有一个SQL Server 2008 R2企业版,它拥有一个数据库, 除了一张大桌子(博客表)之外,它本身几乎没有任何东西。 该表是1亿多行(35列),每天增加约200,000行。我们需要所有数据都“在线”, 并且大多数列都需要以某种方式搜索。
我想按月将表拆分成一些小表。例如:
table1 :1/1/2013-1/31/2013
table2 :2/1/2013-2/28/2013
table3 :3/1/2013-3/31/2013
table4 :4/1/2013-4/29/2013
.....
table12 :12/1/2013-12/31/2013
假设用户在2个月(1个博客条目),4个月(2个博客条目),10个月(5个博客条目)发布一些博客条目 ,11个月(没有博客条目)和12个月(没有博客条目)
有一项要求:
假设当前日期是2013年12月20日。为了获得有关此用户的最近10篇博客文章,我必须联合所有12个表
我认为这种设计效率低下。如果是这样的话?怎么设计?谢谢!
答案 0 :(得分:1)
您可能希望更多地使用Partitioned Table and Index Concepts
分区使大型表或索引更易于管理,因为 分区使您可以快速管理和访问数据子集 并且有效地保持数据收集的完整性。
SQL Server内置了此功能,因此请勿尝试自行管理。
另请参阅Designing Partitioned Tables and Indexes
请不要那样
分区表和索引仅在Enterprise上可用, SQL Server的开发人员和评估版。
但在你的情况下会没事的。