2013-10-31 52 views
1

如果我每年有大约40万行添加到桌子上,最好是有一张巨大的桌子还是每年将它分成一张桌子?巨大的桌子或小桌子

数据将从另一个数据源导入,所以我会有一个将被索引的“AsOf”。 AsOf将是从源系统中提取数据的月份。

我的想法是,如果我有一个大桌子,我能有这样的查询:

选择场,场2,...从dbo.MyBigTable 其中ASOF = '12/31/2010' And ...

如果我每年把数据放到一张表中,我将不得不根据我查询的年份来改变查询,也许做union。

+8

您的问题的答案是“分区”。你有一个经典的例子,这是有用的。这是一个很好的开始:http://technet.microsoft.com/en-us/library/ms190787(v=sql.105).aspx。 –

+0

根据您的硬件和配置,每年4000万只很少。正如Gordon Linoff所提到的那样看待分区。您可以将这些表分区到多个RAID阵列上,例如用于快速访问的RAID 10,然后是RAID 5(如果您必须)用于历史数据。 – Namphibian

回答

0

您可以使用分区。在一些硬盘上使用分区功能的一个大表和分区数据存储几年,以便您的磁盘可以并行工作。

0

如果我把数据放到每年的表我会根据更改查询哪一年,我查询,也许做工会的

我要说的是,保持未来的T-SQL可以成为一个问题。因此,我建议保留“巨大”的桌子与other optimizations to consider。请注意关于索引的部分