【问题标题】:Extremely slow insert OpenQuery performance on SQL Server to MySQL linked server在 SQL Server 上向 MySQL 链接服务器插入 OpenQuery 性能极慢
【发布时间】:2011-04-26 20:45:07
【问题描述】:

使用 SQL Server Management Studio 将表的全部内容从 SQL Server 复制到 MySQL 计算机上的相同表中。 MySQL db 使用 MySQL ODBC 5.1 驱动程序作为链接服务器连接到 Management Studio。使用简单的语句可以正常工作,但执行起来非常慢。

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

我有一张包含大约 450,000 条记录的表,传输只需 5 个多小时。这是正常的吗?我之前没有链接 MySQL 服务器的经验。

【问题讨论】:

  • 您将 450,000 条记录中的所有记录从 mssql 源物理复制到新的服务器和磁盘位置。 5 小时是每条记录 40 毫秒。记录数据很慢吗?

标签: mysql sql-server linked-list openquery


【解决方案1】:

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

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

  • 每当您进行大量批量复制时,通常不会一次性完成所有操作,因为大型插入/更新/删除事务非常昂贵,因为数据库必须准备好在交易完成之前的任何时间。最好分批复制(比如一次 1000 条记录)。执行此批量复制的一个好工具是 SSIS(SQL Server 附带),它可以为您执行此批处理。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 2015-02-08
    • 1970-01-01
    • 2012-08-30
    • 2012-01-01
    • 1970-01-01
    • 2014-04-16
    相关资源
    最近更新 更多