DML 実行時の PL/SQL スクリプトのパフォーマンスに関して 2 つの質問があります。もちろん、これEXECUTE IMMEDIATE
が最も遅いためforall
、bulk
挿入などがあります。私の質問は
- 3 つの異なるテーブルでデータを操作する必要があります。
Table1
(データの挿入)、Table2
(データの更新)、およびTable3
データの削除。これらはすべて、カーソルを使用してフェッチされた値に基づいて行われます。問題は、ここでより効率的なものは何ですか?- これらの各ステートメントを個別の
Forall
ブロックに入れますか? すなわち
- これらの各ステートメントを個別の
fetch cursor loop forall loop for table 1 forall loop for table 2 forall loop for table 3 end loop
また
- グローバル ループを作成し、そのループ内でこれらのステートメントを実行します。
fetch cursor loop for i IN array.count loop 3 statements for DML end loop end loop
さて、私の2番目の質問
- ループでレコードを削除する効率的な方法は何ですか? カーソルを介して削除するレコードの値を取得しました。それらを削除する効率的な方法は何でしょうか?
PS: 私の書式設定を実行してください