Выберите в VS Мастер импорта и экспорта на сервере SQL

В sql server, с моего рабочего стола я подключился к серверу. И я хочу переместить данные из базы данных в другую. Я использовал оба мастера выбора и импорта. Но мастер импорта кажется медленным. Зачем?

Есть ли какие-либо изменения в методологии передачи данных?

3 ответа

Решение

Select into - это запрос SQL, который выполняется напрямую.
Мастер импорта и экспорта - это инструмент, который вызывает службы интеграции (SSIS).
Мастер работает медленно, но может использовать различные источники данных

Подробнее о мастере экспорта / импорта
https://msdn.microsoft.com/en-US/en-en/library/ms141209.aspx
Тема о мастере выбора и экспорта / импорта
https://social.msdn.microsoft.com/forums/sqlserver/en-US/e0524b2a-0ea4-43e7-b74a-e9c7302e34e0/super-slow-performance-while-using-import-export-wizard

Mysql Хранит данные во многих местах и ​​хранит их в небольшом фрагменте файлов для более быстрого извлечения, а когда мы используем мастер экспорта, он сначала записывает все метаданные и данные в нашу оперативную память, в зависимости от нашей системы, и увеличивает накладные расходы, и то же самое происходит в случае импорта, и Выбрать в быстро, потому что mysql должен создать встроенную копию базы данных, которая уже существует.

в реальной жизни Select into - это ксерокопия страницы, а мастер - это как переписывание страницы вручную.

Я согласен с Андреем. Волшебник очень медленный Если вы выполните поиск в Google по "медленному мастеру импорта и экспорта SQL Server", вы получите почти 50 тыс. Обращений. Вы можете рассмотреть несколько других вариантов.

Утилита BCP

Примечание: я использовал это несколько раз. Очень быстрая обработка.

Утилита bcp массово копирует данные между экземпляром Microsoft SQL Server и файлом данных в указанном пользователем формате. Утилита bcp может использоваться для импорта большого количества новых строк в таблицы SQL Server или для экспорта данных из таблиц в файлы данных. За исключением случаев использования с опцией queryout, утилита не требует знаний Transact-SQL. Чтобы импортировать данные в таблицу, вы должны либо использовать файл формата, созданный для этой таблицы, либо понять структуру таблицы и типы данных, которые действительны для ее столбцов.

Пример:

BULK INSERT TestServer.dbo.EmployeeAddresses
FROM 'D:\Users\Addresses.txt';
GO 

Функция OPENROWSET(BULK)

Функция OPENROWSET(BULK) подключается к источнику данных OLE DB для восстановления данных и позволяет получить доступ к удаленным данным, подключившись к удаленному источнику данных.

Пример:

INSERT INTO AllAddress(Address)
SELECT * FROM OPENROWSET( 
   BULK 'D:\Users\Addresses.txt', 
   SINGLE_BLOB) AS x;

Ссылка

https://msdn.microsoft.com/en-us/library/ms175915.aspx

http://solutioncenter.apexsql.com/sql-server-bulk-copy-and-bulk-import-and-export-techniques/

Другие вопросы по тегам