Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MSS 2008 экспорт новых строк  [new]
ScoffeR86
Member

Откуда:
Сообщений: 4
Здравствуйте, гуру MS SQL

Проблема следующая: есть огромная база данных - 50% которой занимает таблица ненужной информации. 15000 объектов ежесекундно к ней присылают информацию о своем состоянии, каждый такой отклик записывается как строка в таблицу, соответственно таблица состоит из десятков миллионов строк.

Было решено хранить информацию только за последние 3 месяца, а всю более древнюю к сожалению не удалять, а складывать в отдельную базу данных...

Соответственно, приложение настроено так, что чистит в данной таблице все события, которые были раньше трех месяцев (дата и время события - отдельный столбец).

Вопрос, как сделать средствами SQL так, чтобы данная табличка реплицировалась/экспортировалась в отдельную базу данных, но при удалении данных из базы-источника, они не удалялись бы из базы-назначения???

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

На маленькой тестовой базе все было хорошо, но с огромной боевой сервак не справляется (( Задача висит несколько часов, а потом лог системной базы заполняет собой все свободное место на жестком диске.
2 июн 09, 16:29    [7256963]     Ответить | Цитировать Сообщить модератору
 Re: MSS 2008 экспорт новых строк  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31218
ScoffeR86
Вопрос, как сделать средствами SQL так, чтобы данная табличка реплицировалась/экспортировалась в отдельную базу данных, но при удалении данных из базы-источника, они не удалялись бы из базы-назначения???
Можно сделать обычную репликацию, сделать поле is_archive, в репликации фильтр is_archive=0, в архивной базе поле взводить.

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

На маленькой тестовой базе все было хорошо, но с огромной боевой сервак не справляется (( Задача висит несколько часов, а потом лог системной базы заполняет собой все свободное место на жестком диске.
Нормальная схема - bcp будет переносить очень быстро.

Может, что то у вас не так настроено.
2 июн 09, 16:37    [7257036]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить