Я имею, вид. При разделении на SQL Server 2005 несколько труден и вероятно не стоит проблемы, если у Вас нет достаточного количества данных для получения реальной победы производительности. Вместо того, чтобы создавать разделы на лету, необходимо просто создать разделы до некоторого периода в будущем. Не стоил чего-либо, пока Вы не помещаете данные в них.
Удаление разделов немного более трудно - необходимо будет сделать таблицу с корректной схемой, и проверочное ограничение на ключ раздела затем делают alter table swap partition
. Получение идентификатора раздела может быть немного трудным, но можно сделать это из словаря данных. Я также сделал это однажды путем создания 'лидирующей' таблицы с одной строкой для каждого раздела на той же схеме выделения разделов и выбора $partition. {Функция раздела} от той таблицы, где ключ является соответствующим значением.
Структура таблицы Вашей таблицы царапины должна выстроиться в линию с основной таблицей, включая индексы. Затем Вы выгружаете раздел и отбрасываете таблицу.
Я думаю, что краска является все еще немного влажной при разделении для SQL Server 2005. Существует несколько недостающих возможностей, например, Вы не можете легко создать индексы на определенном разделе; единственный способ постараться не создавать и восстанавливать индексы для целой таблицы фактов состоит в том, чтобы сделать подобный прием с загрузкой данных и из таблицы царапины. SQL Server 2008 также заставляет средство перемещать таблицы между группами файлов, не делая приема кластерного индекса.
Однако я не знаю ни о чем загружаемом для автоматизации этого. Все, что я сделал для этого идентификатора сделай сам и да, это - боль в заднице.