在sql server中选择进入VS导入导出向导
Posted
技术标签:
【中文标题】在sql server中选择进入VS导入导出向导【英文标题】:Select into VS Import and export wizard in sql server 【发布时间】:2015-01-28 09:44:08 【问题描述】:在 sql server 中,我从我的桌面连接到服务器。我想将数据从数据库移动到另一个。我已经使用了 select into 和 import 向导。但是导入向导似乎很慢。为什么?
传输数据的方法是否有任何变化?
【问题讨论】:
【参考方案1】: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
【讨论】:
【参考方案2】:我同意安德烈的观点。法师超级慢。如果您在“sql server import and export wizard slow”上执行Google搜索,您将获得近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/
【讨论】:
【参考方案3】:mysql 将数据存储到许多地方,并将数据存储在小块文件中以便更快地检索,当我们使用导出向导时,它的作用是首先将所有元数据和数据写入我们的 RAM,具体取决于我们的系统并增加开销和相同在导入的情况下发生,并且 Select into 很快,因为 mysql 必须创建已经存在的数据库的内置副本。
在现实生活中,Select into 就像是页面的复印件,而向导就像手动重写页面。
【讨论】:
以上是关于在sql server中选择进入VS导入导出向导的主要内容,如果未能解决你的问题,请参考以下文章