MSSQL Server 2008 Standard Edition архив большой 800GB таблица

У меня есть таблица, в которую с 2011 года вставляются миллионы записей в день. Размер данных только для этой таблицы вырос более чем на 800 ГБ. Для меня только последние 3 месяца данных запрашивается часто, в то время как для старых данных запрос должен быть сделан очень редко, и это может быть сделано в автономном режиме.

Проблема 1: в таблице есть столбец даты, и я хочу архивировать все данные до 3 месяцев в файлах, чтобы я мог переместить их на другое хранилище. Итак, какой может быть наилучший подход к выполнению требований и я не хочу хранить данные на резервном сервере mssql.

О. создайте пакеты служб SSIS для сброса исторических данных в csv и zip-файлов по имени месяца или даты. При необходимости пакет служб SSIS может считывать файлы и загружать их в базу данных. Эта работа будет планироваться ежедневно или еженедельно.
B. напишите код JAVA или python для выполнения той же работы.
C. другие альтернативы?

Проблема 2: запрос выполняется только для одной даты за раз. При запросе эта таблица соединяется с некоторыми другими мета-таблицами. Так следует ли добавить секционирование в таблицу для повышения производительности запросов?

1 ответ

  1. Что бы я, наверное, сделал:

    • Переместите архивируемые данные в отдельную базу данных на том же сервере. Использование пакета служб SSIS или хранимой процедуры.
    • Переименуйте исходную таблицу, предполагая, что вы не хотите нарушать какие-либо зависимости и хотите иметь возможность использовать архивированные данные в момент уведомления.
    • Создание представления с точно таким же именем, как и исходная таблица выбор всех данных из переименованной таблицы
    • Когда архивные данные требуются, измените представление, чтобы объединить все архивные данные, что-то вроде этого:

    .

    ALTER VIEW [OriginalTableName] AS
    SELECT * FROM ActiveDate
    UNION ALL
    SELECT * FROM ArchiveDB..ArchivedData