在Win2K8上运行MSSQL Server 2008 Standard SP 2 64位。 我在这台服务器上安装了10/28/2010的64位MySQL ODBC驱动5.1.8版。 我已经配置了一个DSN链接到运行在Mac apple-darwin9.8.0服务器上的MySQL服务器5.1(不要问我,我继承了这个)。 我已经成功地通过MDSASQL创建了一个链接的服务器到一个特定的MySQL数据库。
从SQL服务器的盒子里,我可以运行以下性质的简单查询
SELECT * FROM mysql_table WHERE id = 1;
然而,它的速度慢得令人痛苦。 上述查询需要19分钟52秒的时间来执行;同样的查询在本地执行需要0.04秒。
此外,我试图执行一个简单的更新,其性质为
UPDATE mysql_table SET field = 0 WHERE id = 1;
这个程序运行了2 小时小时,然后返回以下错误。
OLE DB provider "MSDASQL" for linked server "LINKED_MYSQL" returned message "Out of memory.".
Msg 7399, Level 16, State 1, Line 3
The OLE DB provider "MSDASQL" for linked server "LINKED_MYSQL" reported an error. The provider ran out of memory.
Msg 7330, Level 16, State 2, Line 3
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "LINKED_MYSQL".
在这之前,有几个涉及更新同一表格的作业失败了,所有这些作业在开始后大约两小时就失败了。
我已经检查了mysql的权限,DSN中指定的用户在mysql.user中拥有适当的权限(好吧,所有的权限)。