当从 SQL Server 在 MySQL 链接服务器上运行存储例程时,我发现查询性能非常差。查询从 SQL Server 运行
select * from OPENQUERY(COGNOS, 'call reporting.sr_vendor_location_report(''2011-06-13 00:00:00'',''2012-01-18 00:00:00'',1,''0,1'',28,''(All)'',''(All)'',1,''(All)'')')
需要 15 秒,但如果我检查 mysql 查询日志或直接在服务器上运行它,我发现它只需要 7 秒。
我在别处读到 MySQL ODBC 连接很慢,但我没有看到任何建议的解决方案。我尝试设置 mysql-proxy(只是通过重定向运行它——没有 LUA 脚本)但没有看到任何改进。我正在使用 MySQL ODBC 连接器 5.1 并在服务器上运行 MySQL 5.5 版。
如果有任何尝试尝试的想法,我将不胜感激。
更新
事实证明,openquery 在 mysql 服务器上对每个查询运行两次,第一次大概是为了获取元数据。有什么办法可以避免这种情况吗?
最佳答案
尝试将提供程序配置为在进程外运行(右键单击提供程序并取消选中允许在进程中框)。
这不完全是与性能相关的设置,但我在某些情况下使用 oracle 看到了良好的性能提升,也许它也适用于 mysql。
关于mysql - 从 SQL Server(ODBC 连接)使用 MySQL 作为链接服务器时查询缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9257326/