Select 进入 sql 服务器中的 VS 导入和导出向导

Select into VS Import and export wizard in sql server

在 sql 服务器中,我从我的桌面连接到服务器。我想将数据从一个数据库移动到另一个数据库。我已经使用了 select into 和 import 向导。但是导入向导似乎很慢。为什么?

传输数据的方法有变化吗?

Select进入是SQL查询,直接执行
导入和导出向导是一个调用集成服务 (SSIS) 的工具。
向导速度慢,但可以使用各种数据源

有关 export/import 向导的更多信息
https://msdn.microsoft.com/en-US/en-en/library/ms141209.aspx
关于 select 的主题和 export/import 向导
https://social.msdn.microsoft.com/forums/sqlserver/en-US/e0524b2a-0ea4-43e7-b74a-e9c7302e34e0/super-slow-performance-while-using-import-export-wizard

我同意安德烈的观点。向导超级慢。如果您在 "sql server import and export wizard slow" 上执行 Google 搜索,您将收到近 50k 次匹配。您可能需要考虑其他几个选项。

BCP 实用程序

注意:我曾多次使用过它。处理速度非常快。

bcp 实用程序以用户指定的格式在 Microsoft SQL 服务器实例和数据文件之间批量复制数据。 bcp 实用程序可用于将大量新行导入 SQL 服务器 table 或将数据从 table 导出到数据文件中。除了与 queryout 选项一起使用时,该实用程序不需要 Transact-SQL 的知识。要将数据导入 table,您必须使用为 table 创建的格式文件,或者了解 table 的结构和对其列有效的数据类型。

示例:

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/

Mysql 将数据存储到许多地方,并将数据存储在小块文件中以便更快地检索,当我们使用导出向导时,它所做的是首先将所有元数据和数据写入我们的 RAM,这取决于我们的系统并增加开销,在导入的情况下也会发生同样的情况,并且 Select 进入速度很快,因为 mysql 必须创建已经存在的数据库的内置副本。

在现实生活中,Select进入就像复印页面,而向导就像手动重写页面。