在SQL Server上插入OpenQuery到MySQL链接服务器的性能非常慢



使用SQL Server Management Studio从SQL Server复制一个表的全部内容到MySQL机器上的一个相同的表。使用MySQL ODBC 5.1驱动程序将MySQL数据库作为链接服务器连接到Management Studio。使用一个简单的语句工作得很好,但是执行起来非常慢。

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

我有一个大约有45万条记录的表,它只需要5个多小时的时间来传输。这正常吗?我之前没有连接MySQL服务器的经验

运行"SELECT * from MSSQL.. "表2",如果你从管理工作室运行它?

查询缓慢的原因有很多:

  • 每当你做大量的批量复制时,你通常不会一次完成所有的复制,因为大的插入/更新/删除事务是非常昂贵的,因为DB必须随时准备回滚,直到事务完成。最好是批量复制(比如一次复制1000条记录)。做这个批量复制的一个好工具是SSIS (SQL Server自带),它可以为你做这个批处理。

  • 您应该显式指定要复制的表的排序顺序,特别是当您要复制到具有聚集索引的表时。您应该确保按照聚集索引的排序顺序插入(例如,聚集索引通常是int/bigint,因此确保按顺序插入记录1,2,3,4,而不是100,5,27,3等)

相关内容

  • 没有找到相关文章

最新更新