Мне не помешала бы помощь. У меня есть производственная база данных на 750 ГБ. (Да, да, этот вопрос можно было бы решить раньше, но он выше моей зарплаты) База данных содержит данные за несколько лет.
Текущее требование состоит в том, чтобы
- ПЕРЕМЕЩАЙТЕ (а не просто копируйте) старые данные в отдельную архивную базу данных, чтобы повысить производительность в производственной среде. т.е. строки будут удалены из производства навсегда. Это будет делаться периодически - я предлагаю раз в месяц, на непрерывной основе. Я не знаю сразу, будет ли архивная БД на другом сервере - может быть, а может и нет.
- Создайте среду отчетности таким образом, чтобы она содержала объединение архивной и производственной баз данных. Загвоздка в том, что часть, состоящая из производственных данных, должна обновляться не реже одного раза в день. Этой среды, вероятно, не будет на рабочем сервере (но я могу ошибаться!)
Для целей этого вопроса предположим, что схемы везде одинаковы :) Все таблицы имеют один первичный ключ - INT NOT NULL IDENTITY (1,1). У нас есть возможность делать снэпшоты продукции через SAN. Первичные ключи должны быть сохранены.
Что было рассмотрено до сих пор
- Мы рассмотрели репликацию и доставку журналов, но этого недостаточно, чтобы сделать базу данных отчетов объединением рабочей и архивной баз данных.
- Мы рассмотрели секционированные представления, но первичный ключ — это IDENTITY и соответственно не будет работать :(
- Мы рассматривали возможность разделения, но я не сторонник ежедневного ETL, для которого потребуются сотни гигабайт операций ввода-вывода (при таком подходе мы не можем использовать моментальный снимок SAN).
- Наконец, я рассматриваю индивидуальный подход к приложению, который будет эмулировать некоторые функции репликации SQL Server, но с более специфическими функциями, чем стандартные. Я действительно не хочу делать что-то очень нестандартное.
Что мне здесь не хватает? Это не может быть уникальной потребностью.