Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server到MySQL链接服务器上的insert OpenQuery性能极低_Mysql_Sql Server_Linked List_Openquery - Fatal编程技术网

SQL Server到MySQL链接服务器上的insert OpenQuery性能极低

SQL Server到MySQL链接服务器上的insert OpenQuery性能极低,mysql,sql-server,linked-list,openquery,Mysql,Sql Server,Linked List,Openquery,使用SQLServerManagementStudio将表的全部内容从SQLServer复制到MySQL计算机上的相同表中。MySQL数据库使用MySQL ODBC 5.1驱动程序作为链接服务器连接到Management Studio。使用简单的语句可以很好地工作,但执行速度非常慢 INSERT INTO openquery(MYSQL, 'select * from Table1') SELECT * from MSSQL..Table2 我有一张大约45万条记录的桌子,传输只需要5个多小时

使用SQLServerManagementStudio将表的全部内容从SQLServer复制到MySQL计算机上的相同表中。MySQL数据库使用MySQL ODBC 5.1驱动程序作为链接服务器连接到Management Studio。使用简单的语句可以很好地工作,但执行速度非常慢

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

我有一张大约45万条记录的桌子,传输只需要5个多小时。这正常吗?我以前没有链接MySQL服务器的经验。

如果从management studio运行“SELECT*from MSSQL..Table2”,需要多长时间

查询速度慢的原因有多种:

  • 无论何时进行大规模大容量复制,通常都不会一次性完成,因为大型插入/更新/删除事务非常昂贵,因为数据库必须随时准备回滚,直到事务完成。最好是成批复制(比如一次复制1000条记录)。执行此批量复制的一个好工具是SSIS(SQL Server附带),它可以为您执行此批处理

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


您正在将450000条记录中的所有记录从mssql源物理复制到新的服务器和磁盘位置。每记录5小时为40毫秒。记录数据的速度慢吗?