SQL Server 2012 链接服务器到 MySQL 慢速选择查询
Posted
技术标签:
【中文标题】SQL Server 2012 链接服务器到 MySQL 慢速选择查询【英文标题】:SQL Server 2012 Linked Server to MySQL Slow Select Query 【发布时间】: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 小时一次)。根据您要求数据的可用性和最新程度,这可能是一个可行的解决方案。 【参考方案1】:在链接服务器中 我认为没有显着改善的可能性 但是你可以通过SSIS试试 并使用批量插入。
【讨论】:
以上是关于SQL Server 2012 链接服务器到 MySQL 慢速选择查询的主要内容,如果未能解决你的问题,请参考以下文章
Sql server 2012 企业中文版安装图文教程(附下载链接)