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

Country(id int primary key identity,
Name varchar(200), UniqueN int)

City(id int primary key identity, Country_id int, Name varchar(200), UniqueN int)

На другом прилинкованом сервере Сервер2 есть точно такие же таблицы.
UniqueN - уникальное значение записи по данной таблицы на всех серверах.

Задача.
Необходимо одним запросом перегнать все данные из Сервер1 в Сервер2 сохраняям при этом целостоность данных. Например, если на Сервер1 есть

Country
id Name UniqueN
1 Россия 100

City
id Country_id Name UniqueN
1 1 Москва 250

На Сервер2 должно появится

Country
id Name UniqueN
3(любое) Россия 100

City
id Country_id Name UniqueN
7 3(любое) Москва 250


Задача очень интересная, поэтому если есть желание советую поэкспереминтировать. Кто предложит самый быстрый вариант запроса?
8 янв 04, 16:06    [484388]     Ответить | Цитировать Сообщить модератору
 Re: Для любителей интересных задач на быстродействие  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
вставить одним запросом моно только в одну таблицу....
самое тупое решение id + большая чиселка
8 янв 04, 16:30    [484434]     Ответить | Цитировать Сообщить модератору
 Re: Для любителей интересных задач на быстродействие  [new]
Crimean
Member

Откуда:
Сообщений: 13148
На источнике собрать все в один резалт-сет поджойнив таблицы
Сделать вью на приемнике
На него инстедный триггер
Во вью инсерт
В триггере - разбор
Это - самое простое решение
Самое быстрое одним запросом не получится
И "быстрое" - что оптимизим? Трафик, проц или диск?
8 янв 04, 17:35    [484589]     Ответить | Цитировать Сообщить модератору
 Re: Для любителей интересных задач на быстродействие  [new]
Просто гость
Guest
Имелось ввиду самое быстрое для одной таблицы.

--Самое быстрое одним запросом не получится
--И "быстрое" - что оптимизим? Трафик, проц или диск?

Быстрое, значит за минимальное время.
8 янв 04, 18:00    [484633]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить