Я хотел бы передать данные из базы данных MS SQL Server в базу данных MySQL. Итак, я добавил связанный сервер к MS SQL, чтобы я мог использовать Openquery для вставки данных в базу данных MySQL. Я хочу оптимизировать производительность передачи данных, и я нашел рекомендации по повышению производительности загрузки данных в MySQL.Специальные заявления с Openquery
Одна оптимизация состоит из отключения режима AUTOCOMMIT, однако я не смог сделать это с помощью Openquery.
Я попробовал оба пути:
SELECT * from openquery(MYSQL,'SET autocommit=0')
exec openquery(MYSQL,'SET autocommit=0')
и я получил:
Невозможно обработать объект "SET AutoCommit = 0". Поставщик OLE DB «MSDASQL» для связанного сервера «MYSQL» указывает, что либо объект не имеет столбцов, либо у текущего пользователя нет разрешений на этот объект .
Возможно ли выполнить такие заявления через openquery?
Спасибо, Микаэль
Thank you. Проблема в том, что мне нужно передать много данных в хранимую процедуру, возможно ли это? Мне нужно вставить миллионы строк, это хорошая идея передать все эти данные в качестве параметра в SP? –
Пожалуйста, напишите ETL-процесс. Если у вас есть SQL Server, у вас есть SSIS. Напишите пакет. Если нет, посмотрите на powershell. Оба решения будут эффективно перемещать данные. Связанные серверы обычно медленнее, чем ETL. –
Мы уже использовали ETL для других продуктов, однако я думаю, что проблема все еще присутствует в ETL (т. Е. Не позволяет изменять свойства сеанса, такие как autocommit). Это правильно? –