2017-01-25 11 views
0

Oracle DB内のテーブルから別のDB内の別のテーブルに約40k行をコピーする必要があります。Oracle DBのテーブルから同様のスキーマを持つ別のDBテーブルにデータをコピーする

私はこれを毎日やっているので、これをできるだけ短時間で行うことができます。我々はDBを使用している考えている選択肢の

一つは

+0

データベースは同じホストまたは異なるホストにありますか?異なるホストの場合、それらの間にはどのような種類のネットワークがありますか?あなたはテーブル全体を対処していますか、40kだけが行のサブセットですか?ターゲット表が空であるか、またはそれが移入されていますか? – BobC

+0

@BobCホストは異なっていますが、同じファイアウォール内です.scededbはビューであり、すべてのデータをコピーしていて、ターゲットは空です。 – SKR

+0

実際に2番目のデータベースからコピーするか、アクセスするだけですか? – Vlad

答えて

0

40Kは、行の数が少ないですので、データベース・リンクが正常に動作しますリンクします。 100万の行をコピーする場合は、他の方法を使用する必要があります。

また、テーブルのエクスポート(exp)を実行し、fromuserおよびtouserパラメータを使用してターゲットをインポート(imp)することもできます。

エクスポートの代わりにdatapumpを使用することもできます。

+0

データが100kになると、dblinksを使用したパフォーマンスはどのようになりますか。そして、dbにコピーするよりもスプールの方が良いオプションを使ってファイルにコピーしています。 – SKR

+0

また、40k行を生成するビューを考慮する必要があります。そのビューはどれくらい複雑ですか?基本的に私が得意とすることは、あなたのボトルネックになるのでしょうか?私。行を取得していますか? ii。それらを運ぶ? iii。それらを書いている? – BobC

+0

100kはまだ問題ありません。数百万行になると、渋滞しているネットワーク上にいる場合は、dblinkから離れる必要があります。複数の挿入ステートメントへのスプーリングは、直接コピーまたはエクスポート/インポートよりも常に遅くなります。とにかくシングルインサートが悪いです。バルクローディング機構を使用する必要があります。 – sandman

関連する問題