Microsoft в MSDN entry об изменении SQL 2005 разделов перечислены несколько возможных подходов:SQL-разделение/объединение табличных разделов: каков наилучший подход к реализации?
- Создать новую разделенную таблицу с нужной функцией разбиения, а затем вставить данные из старой таблицы в новую таблицу, используя инструкцию INSERT INTO ... SELECT FROM.
- Создайте секционированный кластеризованный индекс в куче
- Удалите и перестройте существующий секционированный индекс, используя оператор CREATE INDEX Transact-SQL с предложением DROP EXISTING = ON.
- Выполните последовательность инструкций ALTER PARTITION FUNCTION.
Любая идея, какой будет наиболее эффективный способ для крупномасштабного БД (миллионы записей) с разделами на основе дат записей (что-то вроде ежемесячных разделов), где данные распространяются более 1-2 лет?
Кроме того, если в основном я получаю доступ к последней информации (для чтения), будет ли смысл хранить раздел за последние X дней, а все остальные данные будут другим разделом? Или лучше ли разделять остальные данные (для любого произвольного доступа на основе диапазона дат)?