mysql - 从 SQL Server(ODBC 连接)使用 MySQL 作为链接服务器时查询缓慢

标签 mysql sql-server odbc linked-server

当从 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/

相关文章:

sql - 仅选择没有其他出现类型的行

c# - MySQL 的连接字符串(asp.net 中的 C#)

sql - Postgres 通过 ODBC 查询慢了一个数量级?

mysql - 如何将状态列中的内容显示为数据库中的标题

php - 从txt文件中提取数据并插入数据库

mysql - 将 varchar(40) 转换为日期时间列

mysql - 具有 RDS 的 EC2 上的 "The forked VM terminated without properly saying goodbye"

php - PDO 与 MSSQL 驱动程序如何获取输出参数?

sql-server - SQL Server 中的备份如何进行?

PHP PDO ODBC 连接