0

シナリオ: 1 つのスキーマ テーブルを同じデータベース内の別のスキーマにバックアップしたいと考えています。

既存の設計: バックアップ テーブルのインデックスを削除してデータを切り捨て、最後にデータをバックアップ テーブルにロードします (挿入クエリを使用)。

要件: 既存のデザインは処理に時間がかかっています。これを達成する他の方法があるかどうか私に提案してください......

ありがとう。

4

1 に答える 1

2

自明ではない量のデータがあり、それを高速に実行するために「明白な」ことをすでに行っている場合 (nologging余裕がある場合は、ダイレクト パスの挿入、主に並列)、おそらくそれ以上できることはあまりありません。 SQLにこだわる。

ただし、オプションでデータ ポンプ スキーマのエクスポート/インポートを使用することもできremap_schemaます。プロセスは次のようになります。

  • expdp( SCHEMASモードで)を使用してソース スキーマをエクスポートします。
  • ターゲット スキーマを削除して再作成します (空)
  • impdpおよびオプションを使用してダンプをインポートしremap_schema=source:targetます (「 」を参照REMAP_SCHEMA)。

2 番目のステップをスキップして、table_exists_action=replace代わりにインポート中に使用することができます。ターゲット スキーマに他のオブジェクトがある場合は、より高速になる可能性があり、確実に優れています ( を参照してくださいTABLE_EXISTS_ACTION)。

これを自動化するために「データベース内」に留まりたい場合は、データ ポンプ用の API がありますDBMS_DATAPUMP

于 2013-03-23T09:26:29.743 に答える