SQL Server 2008 связанный сервер MySQL медленно - PullRequest
2 голосов
/ 19 сентября 2011

Запуск MSSQL Server 2008 Standard SP 2 в 64-разрядной версии на Win2K8.Я установил на этот сервер 64-битный драйвер MySQL ODBC версии 5.1.8 от 28.10.2010.Я настроил DSN-соединение с сервером MySQL 5.1, работающим на сервере Mac apple-darwin9.8.0 (не спрашивайте меня, я унаследовал это).Я успешно создал связанный сервер через MDSASQL для конкретной базы данных MySQL.

Из окна SQL Server я могу запускать простые запросы типа

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.

Я был бы очень признателен, если бы кто-нибудь мог дать мне какие-либо возможностирасследовать, чтобы заставить это работать.

1 Ответ

0 голосов
/ 15 ноября 2012

Избегайте присоединений к связанным серверным таблицам и посмотрите на динамические открытые запросы И обратитесь к этому вопросу, который был опубликован раньше. Производительность и параметры связанного сервера

...