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

Откуда:
Сообщений: 140
Ситуация такая: нужно с некоторой регулярностью копировать содержимое таблиц хоста А (около 10 штук, где-то по тысяче записей) на хост Б. Данные в таблицах связаны внешними ключами. К таблицам хоста Б имеет доступ сторонняя аппликация. Как правильно организовать копирование, чтобы в момент копирования сторонняя аппликация не имела возможности прочитать неполные данные? (т.е. в некоторый момент времени сторонняя аппликация имеет доступ к набору данных на хосте Б, являющимся точной копией набора данных хоста А, либо ожидает завершения копирования).

Вопрос: как правильно копировать данные с хоста А на хост Б?
Взять набор команд
DELETE FROM t2
DELETE FROM t3
...
INSERT INTO t3
(data)
INSERT INTO t2
(data)
И завернуть это в транзакцию и пользоваться какими-нибудь хинтами? (Какими конкретно?) Подскажите плз как правильнее.
22 ноя 09, 02:23    [7960582]     Ответить | Цитировать Сообщить модератору
 Re: регулярное копирование некоторого объема данных  [new]
aleks2
Guest
1. Копируем, ВСЕ шо надо с A на B во временные таблицы.
2. В транзакции на B выполняем
DELETE FROM t2
DELETE FROM t3
...
INSERT INTO t3
(data из времянок)
INSERT INTO t2
(data из времянок)
22 ноя 09, 11:12    [7960769]     Ответить | Цитировать Сообщить модератору
 Re: регулярное копирование некоторого объема данных  [new]
bao
Member

Откуда:
Сообщений: 140
Любопытно, а почему именно так?

Да, еще один момент, который я упустил: весь код копирования находится на хосте A, запись/удаление осуществляется через linked server, соответственно все операции через OPENQUERY..

P.S. SQL Server 2008
22 ноя 09, 13:49    [7960934]     Ответить | Цитировать Сообщить модератору
 Re: регулярное копирование некоторого объема данных  [new]
aleks2
Guest
bao
Любопытно, а почему именно так?

Да, еще один момент, который я упустил: весь код копирования находится на хосте A, запись/удаление осуществляется через linked server, соответственно все операции через OPENQUERY..

P.S. SQL Server 2008



1. Патаму, шо "так время простоя системы минимально".

2. sp_executesql никто не отменял. Хотя проще заколбасить хранимку на В.
22 ноя 09, 14:22    [7960970]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить