Нужен совет по архивированию больших таблиц SQL Server - PullRequest
4 голосов
/ 18 августа 2010

Наши базы данных SQL Server (SQL Server 2008 Standard edition, так что быть R2) становятся все больше и больше с годами хранения данных.Итак, мы думаем о переносе старых данных (возможно, старше года) в архивную базу данных.Есть много причин, по которым нам было бы выгодно уменьшить размер наших производственных баз данных.

Именно так я планирую это сделать (на примере базы данных Stock ).Для базы данных Stock теперь будут базы данных Stock и Stock_Archive.Таблица StockResults будет называться StockResults_Current в базе данных Stock и StockResults_Archive в Stock_Archive.И в базе данных Stock будет представление, называемое StockResults, которое объединяет их.В обычное время мы будем архивировать наши данные (т.е. перемещать их в базу данных Stock_Archive).Это основная идея.

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

Кто-нибудь пробовал что-нибудь подобное?Или есть советы по архивированию таким способом?Или можете порекомендовать лучший способ?

Меня не слишком беспокоит производительность архивированных данных, но я не хочу, чтобы это влияло на чтение и запись текущих данных.Таблицы, подобные StockResults, используются в наших отчетах.

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

Любой совет будет очень признателен.

Ответы [ 2 ]

1 голос
/ 19 августа 2010

Похоже, идеальный сценарий хранилища данных.Вы можете создавать таблицы, которые соответствуют вашим существующим таблицам Stock, с дополнительными полями StartDate и EndDate, чтобы отслеживать медленно изменяющиеся измерения.Затем вы также можете изучить использование пакетов служб SSIS для планирования ETL.

См. Здесь некоторые ссылки - Хорошее место для начала изучения хранилищ данных?

Еслиу вас его еще нет, поэтому стоило бы попробовать собрать куб в рамках платформы отчетности.

Удачи!

0 голосов
/ 19 августа 2010

DataWareHouse - вариант, но я думаю, что вы можете использовать частичные таблицы для архивирования и разделения ваших больших данных.

Вы можете разделить все свои данные по параметру (например, StockDate). Вы можете хранить каждую деталь отдельно .mdf файл, конечно, если вы хотите, вы можете сохранить этот файл на другом диске.

ЕСЛИ вы разделяете данные с частичной таблицей, когда вы запрашиваете «SELECT * FROM StokResults», вы можете видеть все ваши данные, но вы знаете, что они выбирают отчаянные файлы.

...