2016-09-10 10 views
1

最速の方法で二つの異なるレコード間の大きなデータをコピーし、私は今、その次のコードは、私は2つの異なる場所に2つのデータベースを有する

set rst1 = conn.execute ("Select A1,A2,A3 from Tickets") 
do until rst1.eof 
conn2.execute ("Insert into Tickets values (rst1!A1, rst1!A2, rst1!A3)") 
rst1.movenext 
loop 

を使用して位置Aから位置Bにテーブルにデータをコピーしますデータベースが100万レコード以上に成長しました。データをB位置にコピーすると、すべてのレコードをループするほど長くなりました。

ロケーションAとロケーションBの "Tickets"というデータベーステーブルは同じです。メソッドを使用して、ロケーションAのすべてのデータをBに最も速くコピーし、何百万というすべてのrecoを​​ループする必要はありません毎回rds。

おかげ

+0

ストアドプロシージャを試しましたか? –

+0

いいえ.....どのように私は2つのデータベースインスタンス間でそれを行うのですか?場所Aは、インターネット上の場所Bからアクセスされるので、基本的に2つの異なるデータベースインスタンス間の2つの類似するテーブルのデータをインターネット経由でコピーしたいと考えています。 – DoreenSly

答えて

0

あなたは、バルク・コピーを使用して、トランザクションベースのINSERTクエリよりも高速になりますどの挿入することができます。

bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c 

と似てバルクが速く、それのようになります

BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail 
FROM '\\computer2\salesforce\dailyorders\neworders.txt' 

を挿入取引ベースではありません

https://msdn.microsoft.com/en-us/library/ms175937.aspx

+0

このオプションは、OPが現在使用しているものよりも実際に高速であると言うリファレンスを含めることができますか? –

+0

私の理解としては、bcpはトランザクションログをあまり扱っていませんが、通常のインサートはトランザクションログに書き込むために多くの処理をしますが、http://stackoverflow.com/questions/6793845/why-is-bcp-so-fast –

+0

、ちょうどそれがより速い理由を持つことが役に立つと思っただけです。 –

関連する問題