私は1つのUNIXスクリプトを持っています これでは、SQLローダを使用してテーブル、インデックスを作成し、ファイルからこのテーブルに日付をロードしています。 この表では、70回近くの直接更新(全部または大量収集を使用しない)を行っています。パフォーマンスチューニング - 挿入
最後に、この新しいテーブルのデータを別のテーブルに挿入しています。 1日あたり500,000レコードを処理しています。これらのアップデートはすべて非常に高速です。
このデータを20分かけて別のテーブルに挿入するとき。どのように改善することができますか?
- 同じテーブルで、正常に動作している別のテーブルから500,000個のレクタを挿入しているため、挿入に問題はありません。挿入は1分以内で完了しました。
テーブルへの挿入select()from tablex; 500000レコードで20分かかります 同じシェルスクリプトでテーブルが作成され、読み込まれ、70直接更新されました。
selectスクリプトとinsertスクリプトの両方の実行計画コストが同じであることを確認しました。
テーブルに挿入する()select()from tabley; 上記の文は1秒未満で実行されました。
- パラレルヒントを使用しました。コストが削減されます。そしてCPU使用率はゼロです。
- もう1つのテーブルtablezを作成し、tablezから最終テーブルにデータをロードしますか?
- 統計収集が必要ですか?これは毎日実行されるプログラムです。
ステップ1 - [ask]を読んでください。 – OldProgrammer