SQL Server 2012连接MySQL的关联服务器查询缓慢

3

我正在运行 SQL Server 2012 并通过最新的 MySQL ODBC 驱动程序建立了与 Linux MySQL 实例的联机服务器连接。但是我对一个相当简单的“Select”查询返回结果所花费的时间有些失望。

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

表格大约有150,000行,需要约70秒才能将结果返回到SSMS。相反,如果我通过MySQL客户端应用程序查询表格(在同一台机器上的SQL服务器上),则查询大约需要1秒钟。
我知道链接服务器和ODBC会更慢,但是我对这种性能损失感到惊讶,特别是对于这样一个简单的查询。
我已经尝试了Unicode和ANSI驱动程序,性能类似。 MySQL数据库是UTF-8字符集和联合,表格是InnoDB。 我也试过显式选择列而不是*。 再次没有区别。
有人之前经历过这种情况,并有任何加速性能的提示,或者这是相当正常的吗?
提前感谢。

你使用的MySQL客户端应用程序只发送回前几行数据,在滚动结果集时会检索额外的行吗?我知道Toad在连接Oracle时会这样做,并有时会让你认为查询运行得比实际更快,因为所有行都是一起返回的。 - BateTech
这是一个有趣的建议。我会检查日志以获取其他查询。 - pugu
我们使用分段表,定期更新(每3小时一次)。根据您需要数据的可用性和最新程度,这可能是一个可行的解决方案。 - mitchimus
1个回答

0
在联接服务器中,我认为没有显著改进的可能性,但您可以尝试通过SSIS并使用批量插入来实现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接