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

Откуда: Gomel
Сообщений: 25
Написал я так сказать, "оффлайновую репликацию" для MS SQL - измененные данные выгружаются в базу Access, далее архивируются, отправляются в пункт назначения почтой\флэшкой\диском - и там читаются обратно в базу MS SQL (с последующей обработкой, разумеется).

Всем процессом заведует MFC приложение на Visual C++.

В связи с выросшими объемами встал вопрос быстродействия - значительную часть времени занимает загрузка данных из таблиц SQL сервера в Access и наоборот.

Посему вопрос - каким способом наиболее оптимально организовывать передачу данных
между SQL и Access?

На данный момент используется достаточно простой метод - в С++ открывается два рекордсета - для аксцесовской и SQL-ной таблиц и идет просто копирование данных средствами С++. С целью повышения быстродействия используется пакетный режим - UpdateBatch - данные на сервак отправляются порциями по эн записей в зависимости от размераз записи таблицы.

Если кто знает более правильные методы (а они, подозреваю, есть ) - просьба поделиться.

Заранее спасибо.

ЗЫ: Про DTS знаю, но имхо тут его приложить будет сложно.
29 май 09, 16:54    [7245777]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый импорт данных из Access в MS SQL  [new]
iljy
Guest
Barbarian,

читайте про OPENDATASOURCE, OPENROWSET, linked server
29 май 09, 17:10    [7245880]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый импорт данных из Access в MS SQL  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5192
Barbarian,

а не проще выгружать данные BCP в файл и на получателе заливать?
29 май 09, 17:18    [7245915]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый импорт данных из Access в MS SQL  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
самый быстрый способ выгрузки/загрузки - bcp out|in "table" -n
29 май 09, 21:37    [7246773]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый импорт данных из Access в MS SQL  [new]
Barbarian
Member

Откуда: Gomel
Сообщений: 25
AAron
самый быстрый способ выгрузки/загрузки - bcp out|in "table" -n



Попробую. Спасибо.

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

Кроме того, как быть с тем, что на момент прихода репликации в целевой таблице могут быть
добавлены поля - в этом случае приложение разруливает ситуацию - а bcp смогёт?
1 июн 09, 10:46    [7250204]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый импорт данных из Access в MS SQL  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5192
Barbarian

Кроме того, как быть с тем, что на момент прихода репликации в целевой таблице могут быть
добавлены поля - в этом случае приложение разруливает ситуацию - а bcp смогёт?

bcp обеспечит быструю выгрузку/загрузку
"разрулить" на получателе сможет спец. процедура
1 июн 09, 11:07    [7250287]     Ответить | Цитировать Сообщить модератору
 Re: Быстрый импорт данных из Access в MS SQL  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
Barbarian

Кроме того, как быть с тем, что на момент прихода репликации в целевой таблице могут быть
добавлены поля - в этом случае приложение разруливает ситуацию - а bcp смогёт?

делаете буферную область, в которую заливаются данные из файлов. а процедурой уже раскидываете по нужным структурам.
1 июн 09, 21:12    [7253533]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить