在 sql server 中,我从我的桌面连接到服务器。我想将数据从数据库移动到另一个。我已经使用了 select into 和 import 向导。但是导入向导似乎很慢。为什么?
传输数据的方法是否有任何变化?
在 sql server 中,我从我的桌面连接到服务器。我想将数据从数据库移动到另一个。我已经使用了 select into 和 import 向导。但是导入向导似乎很慢。为什么?
传输数据的方法是否有任何变化?
select into 是一个 SQL 查询,直接执行。
导入和导出向导是一个调用集成服务 (SSIS) 的工具。
向导很慢,但可以使用各种数据源
有关导出/导入向导的更多信息
https://msdn.microsoft.com/en-US/en-en/library/ms141209.aspx
关于选择和导出/导入向导的主题
https://social.msdn.microsoft.com/论坛/sqlserver/en-US/e0524b2a-0ea4-43e7-b74a-e9c7302e34e0/super-slow-performance-while-using-import-export-wizard
我同意安德烈的观点。法师超级慢。如果您在“sql server import and export wizard slow”上执行谷歌搜索,您将获得近50k的点击量。您可能需要考虑其他几个选项。
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/
Mysql 将数据存储到许多地方,并将数据存储在小块文件中以便更快地检索,当我们使用导出向导时,它的作用是首先将所有元数据和数据写入我们的 RAM,具体取决于我们的系统并增加开销,以防万一导入,并且 Select into 很快,因为 mysql 必须创建已经存在的数据库的内置副本。
在现实生活中,选择进入就像是页面的复印件,而向导就像手动重写页面。