Простое разбиение таблиц в SQL Server 2005 для таблиц фактов?

Я читал статью по адресу http://msdn.microsoft.com/en-us/library/ms345146(SQL.90).aspx подготовиться к реализации некоторых разделов.

У меня есть несколько таблиц, которые я хочу разделить на DATA_DT_ID целое число, и я действительно хотел бы иметь возможность справиться с этим очень просто - добавить новые разделы в конце, когда я публикую новый месяц данных, удалить разделы из серверной части, когда они истекли.

Но статья показывает относительно сложную последовательность шагов, необходимых для этого.

Кто-нибудь создал хранимые процедуры для автоматизации этого? Казалось бы, это довольно распространенная и общая проблема в хранилищах данных.

2 ответа

Решение

Разделение таблиц очень специфично для базы данных, так как имена групп файлов и пути для новых файлов, добавляемых в группы файлов, специфичны для отдельной базы данных.

Вы должны быть в состоянии довольно легко настроить хранимую процедуру с помощью необходимых команд для обработки перемещения данных через разделы.

У меня есть, вроде. Разделение на SQL Server 2005 несколько сложное и, вероятно, не стоит проблем, если у вас нет достаточно данных, чтобы получить реальный выигрыш в производительности. Вместо того, чтобы создавать разделы на лету, вы должны просто создавать разделы до некоторого периода в будущем. Ничего не стоит, пока вы не положите в них данные.

Удаление разделов немного сложнее - вам придется создать таблицу с правильной схемой и проверочным ограничением на ключе раздела, а затем выполнить alter table swap partition, Получение идентификатора раздела может быть немного сложным, но вы можете сделать это из словаря данных. Я также сделал это однажды, создав таблицу "bellwether" с одной строкой для каждого раздела в той же схеме разделов и выбрав в этой таблице $ partition. {Partition partition}, где ключ является подходящим значением.

Структура таблицы вашей рабочей таблицы должна совпадать с основной таблицей, включая индексы. Затем вы меняете раздел и отбрасываете стол.

Я думаю, что краска для SQL Server 2005 все еще немного влажна. Есть несколько отсутствующих функций, например, вы не можете легко построить индексы для определенного раздела; Единственный способ избежать построения и перестройки индексов для всей таблицы фактов - это сделать аналогичный трюк с подкачкой данных в чистую таблицу и из нее. SQL Server 2008 также получает возможность перемещать таблицы между файловыми группами без применения кластерного индекса.

Тем не менее, я не знаю ничего загружаемого, чтобы автоматизировать это. Все, что я сделал для этого id DIY, и да, это боль в заднице.

Другие вопросы по тегам