【问题标题】:SQL Server 2012 Linked Server to MySQL Slow Select QuerySQL Server 2012 链接服务器到 MySQL 慢速选择查询
【发布时间】:2014-04-16 16:58:28
【问题描述】:

我正在运行 SQL Server 2012,并通过最新的 MySQL ODBC 驱动程序设置了与 Linux MySQL 实例的链接服务器连接。我对返回一个相当简单的“选择”查询的结果所花费的时间有点失望。

select * from OPENQUERY(LinkedServer, 'select * from mysqltable')

该表大约有 150,000 行,大约需要 70 秒才能将结果返回到 SSMS。相反,如果我通过 MySQL 客户端应用程序(在本例中为 Navicat Essentials,与 SQL Server 在同一台计算机上)查询表,则查询将在大约 1 秒内执行。

我知道 Linked Servers 和 ODBC 会更慢,但我对这种性能下降感到惊讶,尤其是在使用如此直接的查询时。

我已经尝试了 Unicode 和 ANSI 驱动程序,并且性能相似。 MySQL DB 是 UTF-8 CharSET 和 Coalition,表是 InnoDB。我也尝试过明确选择列而不是 *。再次没有区别。

以前有没有人遇到过这种情况并获得过任何加快性能的提示,或者这很正常吗?

提前致谢。

【问题讨论】:

  • 您使用的 MySQL 客户端应用程序是否只发回前几行,然后在您滚动浏览结果集时检索其他行?我知道 Toad 在连接到 Oracle 时会这样做,并且有时会让您认为如果所有行一起返回,查询的运行速度会比它快得多。
  • 这是一个有趣的建议。我会检查日志以获取其他查询。
  • 我们使用定期更新的临时表(每 3 小时一次)。根据您要求数据的可用性和最新程度,这可能是一个可行的解决方案。

标签: mysql sql sql-server performance linked-server


【解决方案1】:

在链接服务器中 我认为没有显着改善的可能性 但是你可以通过SSIS试试 并使用批量插入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多