シナリオ: 1 つのスキーマ テーブルを同じデータベース内の別のスキーマにバックアップしたいと考えています。
既存の設計: バックアップ テーブルのインデックスを削除してデータを切り捨て、最後にデータをバックアップ テーブルにロードします (挿入クエリを使用)。
要件: 既存のデザインは処理に時間がかかっています。これを達成する他の方法があるかどうか私に提案してください......
ありがとう。
シナリオ: 1 つのスキーマ テーブルを同じデータベース内の別のスキーマにバックアップしたいと考えています。
既存の設計: バックアップ テーブルのインデックスを削除してデータを切り捨て、最後にデータをバックアップ テーブルにロードします (挿入クエリを使用)。
要件: 既存のデザインは処理に時間がかかっています。これを達成する他の方法があるかどうか私に提案してください......
ありがとう。
自明ではない量のデータがあり、それを高速に実行するために「明白な」ことをすでに行っている場合 (nologging
余裕がある場合は、ダイレクト パスの挿入、主に並列)、おそらくそれ以上できることはあまりありません。 SQLにこだわる。
ただし、オプションでデータ ポンプ スキーマのエクスポート/インポートを使用することもできremap_schema
ます。プロセスは次のようになります。
expdp
( SCHEMASモードで)を使用してソース スキーマをエクスポートします。impdp
およびオプションを使用してダンプをインポートしremap_schema=source:target
ます (「 」を参照REMAP_SCHEMA
)。2 番目のステップをスキップして、table_exists_action=replace
代わりにインポート中に使用することができます。ターゲット スキーマに他のオブジェクトがある場合は、より高速になる可能性があり、確実に優れています ( を参照してくださいTABLE_EXISTS_ACTION
)。
これを自動化するために「データベース内」に留まりたい場合は、データ ポンプ用の API がありますDBMS_DATAPUMP
。