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

Откуда:
Сообщений: 1
Добрый день!

1. Есть база 1С.
2. Периодически приложение 1С строит запросы на языке 1С к данным. Эти запросы делают выборку строго за определенный период (например за последний месяц).
3. Есть отдельная база(Base1) на том же SQL Server что и база 1С.
4. После 2. регламентное задание 1С выгружает данные напрямую в Base1 построчно, предварительно удаляя все записи в таблицах Base1 за выгружаемый период.

Суть проблемы в том, что на время выгрузки(20-30 минут) недоступны данные из Base1.

Было принято решение использовать механизм CDC:
1. Создаю аналог Base1, называю Base2.
2. Включаю CDC на Base2.
3. Данные из 1С так же выгружаются как и раньше, но в Base2.
4. После выгрузки вызываю хранимку(напрямую из кода 1С), которая обрабатывает изменения из Base2 fn_cdc_get_net_changes_моя_таблица, и добавляет/удаляет/изменяет только нужные строки в Base1.

Таким образом данные Base1 будут доступны постоянно.

В результате пришел к следующему:
В fn_cdc_get_net_changes_моя_таблица попадает много лишней информации. Т.е. при неизменности данных в отслеживаемых полях отражается факт действий над строками.

Как можно выбрать только те строки Base2, в которых при обновлении изменились значения в отслеживаемых полях?
@supports_net_changes = 1
13 сен 12, 17:00    [13159719]     Ответить | Цитировать Сообщить модератору
 Re: CDC для уменьшения выгрузки из 1С  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34998
Блог
Как все сложно.
Если версия MS SQL поддерживает секционирование, то выгружаете в табличку рядом с нужной, затем делаете переключение секций.
13 сен 12, 17:04    [13159745]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить