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

Откуда:
Сообщений: 170
Добрый день!
Есть 2 сервера расположенные в одной сети.

Необходимо сделать выборку (чуть больше 18 млн строк) на одном сервере
и заинсертить в таблицу на другом сервере.

Как делаю я: линкую сервера, и запросом на одном из серверов перемещаю данные.
Время выполнения: около 3 часов.

Есть более быстрые методы?
23 июл 12, 15:22    [12903161]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SSIS пакет.
23 июл 12, 15:27    [12903215]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
danton
Member

Откуда:
Сообщений: 170
pkarklin,

то есть выполняя SQL Task созданный с помощью SSIS скорость перемещения данных увеличится?
23 июл 12, 15:49    [12903445]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
danton
то есть выполняя SQL Task созданный с помощью SSIS скорость перемещения данных увеличится?


Проведите эксперимент с помощью Data Import\Export Wizard в студии.

Сообщение было отредактировано: 23 июл 12, 15:50
23 июл 12, 15:50    [12903449]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
danton,

И Вам нужен будет Data Flow Task.
23 июл 12, 15:55    [12903511]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
danton
Member

Откуда:
Сообщений: 170
pkarklin
danton,

И Вам нужен будет Data Flow Task.


Протетсировал на наборе данных в 25К строк.
Время выполнения скрипта:

Query OK, 25265 rows affected (51,480 sec)


Время выполнения Data Flow Task:

00:00:08.976 


Спасибо за помощь!
Благодаря чему достигается такой прирост в скорости?
23 июл 12, 16:44    [12903999]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
danton
Благодаря чему достигается такой прирост в скорости?


А Вы запустите профайлер на стороне сервера-приемника.
23 июл 12, 17:02    [12904128]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
danton
Member

Откуда:
Сообщений: 170
pkarklin
danton
Благодаря чему достигается такой прирост в скорости?


А Вы запустите профайлер на стороне сервера-приемника.


Выполняются подряд batch-и c

BULK INSERT (...)
23 июл 12, 17:14    [12904204]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
kiloolik
Member

Откуда: Новосибирск
Сообщений: 81
danton,

Ещё можно посмотреть в сторону BCP в комбинации с SSIS
24 июл 12, 07:14    [12906122]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
danton
Благодаря чему достигается такой прирост в скорости?
Балк работает намного быстрее. Другие протоколы передачи, другая вставка данных, другое логирование...
24 июл 12, 07:59    [12906157]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
danton
Member

Откуда:
Сообщений: 170
alexeyvg,

На счет балка знал, правда пользовался только для вставки данных из внешних ресурсов.

По сути если мне единоразово необходимо сделать операцию вставки мне не нужно пользоваться SSIS. Нужно воспользоваться балк инсертом.
24 июл 12, 10:25    [12906655]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение данных между базами на разных серверах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
danton
По сути если мне единоразово необходимо сделать операцию вставки мне не нужно пользоваться SSIS. Нужно воспользоваться балк инсертом.
Ну да, SSIS в данном случае просто обёрка от балка

Т.е. балк инсертом можно пользоваться в трёх вариантах - утилита BCP, SSIS пакет (в том числе Wizard копирования), и соотв. класс в .NET
24 июл 12, 12:02    [12907467]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить