2015-02-19 8 views
0

У меня есть огромная база данных с таблицей, содержащей миллиард записей. Мне нужно сделать ежемесячную очистку этой таблицы (удалить старые записи на основе поля даты).Как удалить файловую группу из секционированной таблицы (SQL Server 2012)

Так как мне нужно удалить несколько сотен миллионов записей за один месяц данных, выполнение DELETE или даже удаление кусков занимает слишком много времени, из-за индексов, которые замедляют процесс.

данные bcp out + truncate + данные bcp также слишком длинны.

Теперь решение, которое я хочу попробовать, состоит в разделении таблицы на разные файловые группы (один месяц на раздел). Я получаю часть создания разделов, но как удалить файловую группу вместе с ее данными?

ответ

1

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

Here's a good example of a partition-wise rolloff in sql server.

+0

Выглядит многообещающе. Я проверю его и дам вам знать. – pdube

+0

Работал отлично. Предоставленная ссылка - именно то, что мне нужно. Большое спасибо! – pdube

Смежные вопросы