2011-04-26 164 views
2

使用SQL Server Management Studio将表中的全部内容从SQL Server复制到MySQL计算机上的相同表中。 MySQL数据库使用MySQL ODBC 5.1驱动程序作为链接服务器连接到Management Studio。使用一个简单的语句工作正常,但执行速度非常缓慢。极慢地将SQL Server上的OpenQuery性能插入MySQL链接服务器

INSERT INTO openquery(MYSQL, 'select * from Table1') 
SELECT * from MSSQL..Table2 

我有一个约450,000条记录的表,它需要超过5个小时的转移。这是正常的吗?我没有连接MySQL服务器的经验。

+0

您正在从mssql源物理地复制450,000条记录的每个人到一个新的服务器和磁盘位置。 5小时是每个记录40毫秒。记录数据速度慢吗? – boisvert 2011-04-26 22:35:20

回答

3

如果从管理工作室运行它,只需运行“SELECT * from MSSQL..Table2”需要多长时间?

有多种原因,您的查询可能会很慢:

  • 当你进行大规模的批量复制,你通常不会做这一切在一杆,因为大的插入/更新/删除交易是非常昂贵的,因为DB必须随时准备回滚,直到交易完成。最好是批量复制(一次说1000条记录)。做这个批量复制的好工具是SSIS(它随SQL Server一起提供),它可以为你做这个批处理。

  • 您应该明确指定要复制的表上的排序顺序,尤其是在复制到具有聚簇索引的表中时。你应该确保你按照聚簇索引的排序顺序插入(即聚簇索引通常是一个int/bigint,因此确保记录按1,2,3,4而不是100,5,27,3等顺序插入)。 )

+0

+1表示SSIS和表现缓慢的原因 – Arj 2011-06-01 09:36:08