0

MS SQL Server データベースから MySQL データベースにデータを転送したいと考えています。そこで、MS SQL にリンク サーバーを追加して、Openquery を使用して MySQL データベースにデータを挿入できるようにしました。データ転送のパフォーマンスを最適化したいのですが、MySQL でのデータ読み込みのパフォーマンスを改善するためのガイドラインを見つけました。

最適化の 1 つは AUTOCOMMIT モードを無効にすることですが、Openquery を使用してそれを行うことはできませんでした。

私は両方の方法を試しました:

SELECT * from openquery(MYSQL,'SET autocommit=0') 

exec openquery(MYSQL,'SET autocommit=0') 

そして私は得ました:

オブジェクト "SET autocommit=0" を処理できません。リンク サーバー "MYSQL" の OLE DB プロバイダ "MSDASQL" は、オブジェクトに列がないか、現在のユーザーがそのオブジェクトに対するアクセス許可を持っていないことを示しています。

openquery を介してそのようなステートメントを実行することは可能ですか?

ありがとう、ミカエル

4

2 に答える 2

0

SSIS を使用して SQL Server から MYSQL にデータを転送する場合。

ADO.NET Destination が正しく機能するには、MySQL データベースで ANSI_QUOTES SQL_MODE オプションを有効にする必要があります。このオプションは、グローバルに、または特定のセッションに対して有効にすることができます。単一のセッションで有効にするには:

1 - Create an ADO.NET Connection Manager which uses the ODBC driver
2 - Set the connection manager’s RetainSameConnection property to True
3 - Add an Execute SQL Task before your data flow to set the SQL_MODE – Ex. set sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES'
4 - Make sure that your Execute SQL Task and your ADO.NET Destination are using the same connection manager.

Matt Mason が返信でこれを行いました。重要なのは項目 2 で、同じ接続を使用します。

http://blogs.msdn.com/b/mattm/archive/2009/01/07/writing-to-a-mysql-database-from-ssis.aspx#comments

また、CozyRoc には、MYSQL の無料のドライバーよりも高速で信頼性の高いカスタム ODBC ドライバーがあります。

http://cozyroc.com/ssis/odbc-destination

于 2014-01-21T13:39:27.790 に答える