分区两个表

是否有可能将数据从一个表分成两个或更多的表,并让SQL做一个分区呢? 目标是在mytable_old中有当前数据在mytable中的历史数据。 当查询运行时,sql可以根据查询谓词从/两者中获取数据。

例如,2011年以前的所有数据将进入mytable_old,而2011年以后的数据将保留在mytable中。

select * from mytable where date between 12/1/2010 and 12/1/2011 

将从两个表中拉出。 这可能吗?

如果可能,我宁愿不使用视图。 我想避免在旧数据上有任何索引。

要做到这一点,你需要设置一个视图。

最好使用SQL Server企业版,并简单地使用表分区对表进行分区。 然后你可以有两个或更多的分区,只有需要的分区将被查询。

你可以尝试一个过滤的索引。

 CREATE INDEX IX_SomeIndex ON SomeTable ( SomeColumn, AnotherColumn ) WHERE DateColumn >= '1/1/2011' 

那么它只会索引比指定date更新的东西。

一个方法来完成这个将是一个VIEW 。 在这种情况下,这个视图可以跨越两个表格,这样你就可以以任何你想要的方式在它们之间拖曳logging。