count() とか集計関数を使うとソートが行われ、ディスクソートになると遅くなる。何か良い方法はないものかとぐぐってみたところ、
Question:
夜間バッチに大きなソート処理が実行されている。
夜間帯は通常ほとんどバッチプロセス以外は実行されない。
pga_aggregate_targetの5%しか1プロセスにソートエリアがメモリに割り当て
られないのでは、ディスクソートとなってしまい処理の遅延が発生してしまう。
pga_aggregate_targetを大きくするほどメモリに余裕はない。
なんとかならないのか?
Answer:
大量ソートのバッチトランザクションには以下の呪文をつけて下さい。alter session set workarea_size_policy = MANUAL; alter session set sort_area_size = バイト数;これでトランザクション別に任意に大きなソートサイズを割り当てることがで
新・ソートに関する検証 その3 | Insight Technology, Inc.
きます。
こんな方法があった。