Microsoft 在其关于更改 SQL 2005 分区的 MSDN条目中列出了一些可能的方法:
- 使用所需的分区函数创建一个新的分区表,然后使用 INSERT INTO...SELECT FROM 语句将旧表中的数据插入到新表中。
- 在堆上创建分区聚集索引
- 使用带有 DROP EXISTING = ON 子句的 Transact-SQL CREATE INDEX 语句删除并重建现有分区索引。
- 执行一系列 ALTER PARTITION FUNCTION 语句。
任何想法对于具有基于记录日期的分区(例如每月分区)的大型数据库(数百万条记录)来说,最有效的方法是什么,其中数据分布在 1-2 年内?
另外,如果我主要访问(用于阅读)最近的信息,那么在最后 X 天保留一个分区是否有意义,而所有其余数据将是另一个分区?还是对其余数据也进行分区更好(对于基于日期范围的任何随机访问)?