设想:
- 两个数据库:DB_A 和 DB_Archive,有一个非常大的表叫做 tableA。
- 每天,超过 60 天的记录从 DB_A 中删除并移动到 DB_Archive 主要是为了让事物“分离”,因为 tableA 在 DB_A 上被大量查询过去 2 个月的记录。
我想摆脱这个过程,因为它很慢并且消耗大量资源。我正在考虑使用日期列上的分区函数在 DB_A 上实现表分区,并在一个分区上存储 < 2 个月的所有记录,在另一个分区上存储 > 2 个月的所有记录。我的问题:
- 如果我有 2 个不同的数据库,这种情况是否会表现得像?如果我查询 tableA 中的记录 > getdate() - 30,它会读取归档分区吗?
- 我想我也必须对索引进行分区,对吗?
- 我如何处理明天我的分区函数将“更改”的事实,我的意思是,如果我今天创建该函数(7 月 2 日,其范围将是 5 月 2 日,但明天将是 5 月 3 日)。我可以创建动态分区函数吗?